使用Xcode链接到std :: filesystem的库

时间:2019-02-20 12:59:53

标签: c++ xcode c++17 libc++ std-filesystem

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一起分发,至少没有在默认搜索目录中分发。

1 个答案:

答案 0 :(得分:5)

Xcode 10.2不包含实现<filesystem>的库支持。 Xcode 10.2中未包含该代码的原因是<filesystem>的实现当时没有稳定的ABI。

所以行为是可以预期的,但是如果错误更明确地说明发生这种情况的原因,那就更好了。