我在链接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;
}
这是我的makefile:
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
gcc(Gentoo 8.2.0-r3 p1.4)8.2.0
我该如何解决? :S
答案 0 :(得分:0)
实际上,在此阶段,文件系统库不是gcc中标准库的一部分(与clang和MSVC相同)。原因是此阶段的ABI不稳定。
您必须按照experimental::filesystem linker error(IIRC)中的说明,将-lstdc++fs
添加到链接阶段。