我正在尝试使用Meson构建系统构建一段使用新的C ++ 17 Filesystem库的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
)
如果使用boost :: filesystem库,则应使用正确的语法:
filesystem_dep = dependency('boost', modules : ['filesystem'])
如何指定我要包含在Standard C ++库中的版本?这是我尝试失败的尝试:'libc ++ fs','stdlib','stdc ++','libc ++','c ++','c ++ 17'。
这是我从介子处收到的错误消息:
src / meson.build:33:0:错误:找不到本机依赖项'libc ++ fs'
我当前使用的编译器是LLVM / clang。
答案 0 :(得分:1)
dependency()用于外部库。应使用带有add_XXX_arguments()之类的特殊功能的编译器命令行来配置标准库。所以,尝试
add_project_arguments(['-stdlib=libc++'], language : 'cpp')
add_project_link_arguments(['-stdlib=libc++','-lstdc++fs'], language : 'cpp')
但是,您的case中可能不需要'-lstdc ++ fs'。