gpt4 book ai didi

c++ - 无法将 C++ `std::filesystem` 库与 Meson 构建一起使用

转载 作者:行者123 更新时间:2023-11-30 03:20:51 29 4
gpt4 key购买 nike

我正在尝试使用 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: ERROR: Native dependency 'libc++fs' not found

我目前使用的编译器是LLVM/clang。

最佳答案

dependency() 用于外部库。标准库应该使用带有特殊功能的编译器命令行来配置,比如 add_XXX_arguments() .所以,试试

add_project_arguments(['-stdlib=libc++'], language : 'cpp')
add_project_link_arguments(['-stdlib=libc++','-lstdc++fs'], language : 'cpp')

但是,您的 case 中可能不需要“-lstdc++fs” .

关于c++ - 无法将 C++ `std::filesystem` 库与 Meson 构建一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516165/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com