Xcode 10.2现在包含<filesystem>
标头。但是,在使用std::filesystem
编写代码时,我遇到了很多额外的链接错误。
Undefined symbols for architecture x86_64:
"std::__1::__fs::filesystem::path::__filename() const", referenced from:
std::__1::__fs::filesystem::path::filename() const in dump_zip.cpp.o
std::__1::__fs::filesystem::path::filename() const in libxp_parse.a(zipped.cpp.o)
std::__1::__fs::filesystem::path::remove_filename() in libxp_parse.a(zipped.cpp.o)
std::__1::__fs::filesystem::path::has_filename() const in libxp_parse.a(zipped.cpp.o)
std::__1::__fs::filesystem::path::has_filename() const in libxp_parse.a(acf.cpp.o)
我认为需要链接一个额外的库以支持文件系统,但是我无法确定它的位置。知道这叫什么吗?
编辑:libc ++表示libc++fs
是必需的-但是,它似乎并未随Xcode一起分发,至少没有在默认搜索目录中分发。
答案 0 :(得分:5)
Xcode 10.2不包含实现<filesystem>
的库支持。 Xcode 10.2中未包含该代码的原因是<filesystem>
的实现当时没有稳定的ABI。
所以行为是可以预期的,但是如果错误更明确地说明发生这种情况的原因,那就更好了。