实验性::文件系统的链接器错误
当尝试在当前开发版本的 gcc 6.0 中使用新颖的 c 1z 功能时,示例程序遇到链接器错误:
#include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; }
导致以下错误:
/opt/linux-gnu_6-20151011/bin/g++ --std=c++1z main.cpp -O2 -g -o go /tmp/ccaGzqFO.o: In function \`std::experimental::filesystem::v1::__cxx11::path::path(char const (&) [36])': /opt/linux-gnu_6-20151011/include/c++/6.0.0/experimental/bits/fs_path.h:167: undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()' collect2: error: ld returned 1 exit status
解决方案
文件系统 TS 不同于C 1z 支持并且不是 C 1z 工作草案的一部分。可以通过使用 -lstdc fs 链接来访问库来解决链接问题。
更新
以上是为什么在 GCC 6.0 中使用 `std::experimental::filesystem` 时出现链接器错误?的详细内容。更多信息请关注PHP中文网其他相关文章!