Meson 找不到 Boost 库

yol*_*yer 5 compiling c++ boost

我想使用 Meson 构建一个新的 C++ 项目。我需要的第一件事是 Boost 库的依赖项。但是,尽管 Boost 库安装在我的 Arch 系统上(标头和库),Meson 抱怨它找不到它们。

这是介子构建文件:

project('myproj', 'cpp')
boost_dep = dependency('boost')
executable('myproj', 'main.cpp', dependencies : boost_dep)
Run Code Online (Sandbox Code Playgroud)

源文件main.cpp

int main()
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的系统上安装的一些 Boost 文件的部分列表:

$ ls /usr/lib/libboost*|head -n5; ls /usr/include/boost/*|head -n5
/usr/lib/libboost_atomic.a
/usr/lib/libboost_atomic.so
/usr/lib/libboost_atomic.so.1.65.1
/usr/lib/libboost_chrono.a
/usr/lib/libboost_chrono.so
/usr/include/boost/aligned_storage.hpp
/usr/include/boost/align.hpp
/usr/include/boost/any.hpp
/usr/include/boost/array.hpp
/usr/include/boost/asio.hpp
Run Code Online (Sandbox Code Playgroud)

ninja我的项目内命令的输出:

[0/1] Regenerating build files.
The Meson build system
Version: 0.43.0
Source dir: /home/io/prog/myproj/src
Build dir: /home/io/prog/myproj/builddir
Build type: native build
Project name: myproj
Native C++ compiler: c++ (gcc 7.2.0)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Dependency Boost () found: NO

Meson encountered an error in file meson.build, line 2, column 0:
Dependency "boost" not found

[...]
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

yol*_*yer 2

以下问题解决了我的问题:

\n\n

Fedora \xc2\xb7 上未检测到 Boost 问题 #2547

\n\n

我用以下内容替换了介子构建文件:

\n\n
project(\'myproj\', \'cpp\')\ncxx = meson.get_compiler(\'cpp\')\nboost_dep = [\n    cxx.find_library(\'boost_system\'),\n    cxx.find_library(\'boost_filesystem\'),\n]\nexecutable(\'myproj\', \'main.cpp\', dependencies : boost_dep)\n
Run Code Online (Sandbox Code Playgroud)\n