【发布时间】:2018-09-26 10:58:32
【问题描述】:
我正在尝试使用 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
)
如果使用 boost::filesystem 库,这应该是正确的语法:
filesystem_dep = dependency('boost', modules : ['filesystem'])
如何指定我想要标准 C++ 库中包含的版本?这是我尝试但没有成功的方法:'libc++fs'、'stdlib'、'stdc++'、'libc++'、'c++'、'c++17'。
这是我从 Meson 得到的错误信息:
src/meson.build:33:0:错误:未找到本机依赖项“libc++fs”
我目前使用的编译器是 LLVM/clang。
【问题讨论】:
-
(不使用clang或介子,所以我可能错了,但是)如果你使用std::filesystem,你是否检查过是否需要将libc++fs与clang链接?
-
@roalz - 我认为 Meson 应该处理它,并根据编译器(clang 或 gcc)选择
libc++fs或libstdc++fs。
标签: c++ clang boost-filesystem meson-build