1

Meson を使用してプロジェクトにソースベースのライブラリを追加しようとしています。しかし、それをしようとすると、オブジェクト ファイルのリンク エラーが発生します。

プロジェクトの実行可能ファイルにカスタム依存関係を追加しようとしましたが、もちろん、srclibdepプロジェクトの実行可能ファイルの後に定義されているため、未定義(コード前)と表示されます。しかし、Project の実行可能ファイルの前に定義すると、リンクできません。

これは私の ./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いますが、コンパイラは依存関係が既に存在するかのようにコードをコンパイルしました。

4

1 に答える 1