我正在尝试使用 Meson 将基于源的库添加到我的项目中。但是当我尝试这样做时,我得到目标文件链接错误。
我尝试将自定义依赖项添加到项目可执行文件,但当然,它说它是未定义的(srclibdep
在前面的代码中),因为它是在项目可执行文件之后定义的。但是如果我在项目可执行文件之前定义,那么我无法链接。
这是我的 ./meson.build
project('ProjectName', 'cpp', version: '0.1', default_options: ['warning_level=3', 'cpp_std=c++14'])
srclibinc = include_directories('SourceLibraryName')
cpp = meson.get_compiler('cpp')
add_languages('cpp')
proj = executable('ProjectName', 'main.cpp', install: true, include_directories: srclibinc)
srclibdep = declare_dependency(include_directories: srclibinc, link_with: proj)
和 ./SourceLibraryName/meson.build
files = run_command('files.sh').stdout().strip().split('\n')
foreach f: files
install_headers(f)
endforeach
srclib = shared_library('SourceLibrary', files, install: true)
pkg_mod = import('pkgconfig')
pkg_mod.generate(libraries: srclib, version: '0.1', name: 'libsrc', description: 'Source-based library.')
我收到数百个链接错误,说x::Y
引用不存在,但是编译器编译了代码,就好像依赖关系已经存在一样。