gpt4 book ai didi

c++ - 使用实验性/文件系统时 undefined reference

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:56 35 4
gpt4 key购买 nike

我正在尝试使用 code runner 在 vi​​sual studio code 中使用 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 一起是最新的。

最佳答案

以下命令行对我来说非常有用(Ubuntu 17.10 上的 GCC 7.2.0):

g++ -std=c++17 test.cpp -lstdc++fs

请注意,当您在命令行中省略 -lstdc++fs 或将其放在 test.cpp 之前时,链接将失败并显示 undefined引用 您观察到的错误。

关于c++ - 使用实验性/文件系统时 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49249349/

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