Pie*_*tro 5 c++ clang boost-filesystem meson-build
我正在尝试使用 Meson 构建系统构建一段使用新的 C++17 文件系统库的 C++ 代码。
这是meson.build
涉及的文件:
if not compiler.has_header('filesystem') # This is OK
warning('The compiler has no <filesystem> header file')
endif
filesystem_dep = dependency('libc++fs', modules : ['filesystem'])
test_exe = executable('test', test_src,
include_directories : include_dirs,
dependencies : filesystem_dep
)
Run Code Online (Sandbox Code Playgroud)
如果使用 boost::filesystem 库,这应该是正确的语法:
filesystem_dep = dependency('boost', modules : ['filesystem'])
Run Code Online (Sandbox Code Playgroud)
如何指定我想要标准 C++ 库中包含的版本?这是我尝试过但没有成功的方法:'libc++fs'、'stdlib'、'stdc++'、'libc++'、'c++'、'c++17'。
这是我从 Meson 收到的错误消息:
src/meson.build:33:0: 错误: 未找到本机依赖项“libc++fs”
我目前使用的编译器是LLVM/clang。
dependency()用于外部库。应使用编译器命令行和add_XXX_arguments()等特殊函数来配置标准库。所以,尝试一下
add_project_arguments(['-stdlib=libc++'], language : 'cpp')
add_project_link_arguments(['-stdlib=libc++','-lstdc++fs'], language : 'cpp')
Run Code Online (Sandbox Code Playgroud)
但是,您的情况可能不需要“-lstdc++fs” 。