Cant链接文件系统库con C ++

时间:2018-10-06 19:34:54

标签: c++ filesystems

我在链接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

1 个答案:

答案 0 :(得分:0)

实际上,在此阶段,文件系统库不是gcc中标准库的一部分(与clang和MSVC相同)。原因是此阶段的ABI不稳定。 您必须按照experimental::filesystem linker error(IIRC)中的说明,将-lstdc++fs添加到链接阶段。