无法链接文件系统库con C++; 我有麻烦在C++上连接文件系统库。我有gcc 8.2.0: #include<iostream> #include <string> #include <filesystem> namespace fs = std::filesystem; int main(int argc, char** argv){ std::string path = "/"; for (auto & p : fs::directory_iterator(path)) std::cout << p << std::endl; } #包括 #包括 #包括 名称空间fs=std::filesystem; int main(int argc,字符**argv){ std::string path=“/”; for(auto&p:fs::directory\u迭代器(path)) std::cout

无法链接文件系统库con C++; 我有麻烦在C++上连接文件系统库。我有gcc 8.2.0: #include<iostream> #include <string> #include <filesystem> namespace fs = std::filesystem; int main(int argc, char** argv){ std::string path = "/"; for (auto & p : fs::directory_iterator(path)) std::cout << p << std::endl; } #包括 #包括 #包括 名称空间fs=std::filesystem; int main(int argc,字符**argv){ std::string path=“/”; for(auto&p:fs::directory\u迭代器(path)) std::cout,c++,filesystems,C++,Filesystems,实际上,文件系统库在这个阶段不是gcc标准库的一部分(对于clang和MSVC也是如此),原因是这个阶段ABI不稳定。 必须将-lstdc++fs添加到链接阶段,如(IIRC)中所述.我也有同样的错误。CFLAGS=-Iheaders-std=c++17-lstdc++fs-wall你能告诉我们实际的错误吗,至少部分错误吗?也许你没有安装这个库?这是一个错误:它是西班牙语的,但是里面没有太多的单词。如果没有安装,我怎么知道?以及如何安装它?这很奇怪,因为缺少这些符号是来自这个附加库的符号。添加链

实际上,文件系统库在这个阶段不是gcc标准库的一部分(对于clang和MSVC也是如此),原因是这个阶段ABI不稳定。
必须将
-lstdc++fs
添加到链接阶段,如(IIRC)中所述.

我也有同样的错误。CFLAGS=-Iheaders-std=c++17-lstdc++fs-wall你能告诉我们实际的错误吗,至少部分错误吗?也许你没有安装这个库?这是一个错误:它是西班牙语的,但是里面没有太多的单词。如果没有安装,我怎么知道?以及如何安装它?这很奇怪,因为缺少这些符号是来自这个附加库的符号。添加链接后,您能告诉我们makefile的状态吗?修复了!必须将-lstd++fs放在要编译的文件.o之后,而不是之前。
CC= g++-8.2.0
CFLAGS= -Iheaders -std=c++17  -Wall

all: lsr 

lsr: lsr.o
  ${CC} ${CFLAGS} $? -o $@

%.o: %.cpp
  ${CC} ${CFLAGS} -c $<

clean:
  rm -f *.o lsr