【发布时间】:2018-08-21 07:21:28
【问题描述】:
我正在尝试使用代码运行器在 Visual Studio 代码中编译一个带有 Experimental::filesystem 的项目,但是即使在终端中我也无法编译它。
代码如下,来自文档的一个非常简单的测试用法:
#include <iostream>
#include<experimental/filesystem>
using namespace std;
namespace fs = std::experimental::filesystem;
int main(){
fs::create_directories("sandbox/a/b");
cout << "done.";
return 0;
}
编译
g++ -std=c++17 $fullFileName && ./a.out -lstdc++fs
在代码运行器配置中或仅使用
g++ -std=c++17 test.cpp -o test -lstdc++fs
在终端中不编译或一般不工作。
它提供的错误是:
/tmp/cco0g7Qf.o: In function `main':
test.cpp:(.text+0x24): undefined reference to `std::experimental::filesystem::v1::create_directories(std::experimental::filesystem::v1::__cxx11::path const&)'
/tmp/cco0g7Qf.o: In function `std::experimental::filesystem::v1::__cxx11::path::path<char [12], std::experimental::filesystem::v1::__cxx11::path>(char const (&) [12])':
test.cpp:(.text._ZNSt12experimental10filesystem2v17__cxx114pathC2IA12_cS3_EERKT_[_ZNSt12experimental10filesystem2v17__cxx114pathC5IA12_cS3_EERKT_]+0x64): undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
任何帮助都将不胜感激,我正在运行 linux 并且已经检查以确保我的 libstdc++ 与我的 gcc 一起是最新的。
【问题讨论】:
标签: c++ gcc filesystems undefined-reference