2017-02-09 2 views
1

는 GCC와 연타의 최신 버전에서 컴파일 experimental/filesystem을 얻기에 관하여 몇 가지 질문이 계속있다 : experimental::filesystem linker error왜 아직도 -lstdC++ fs를 사용해야합니까?

하지만 지금 filesystem로 받아 들여졌다 그래서 experimental에 더 이상 필요하거나 -lstdc++fs 플래그, 맞죠?

잘못된 나는조차 #include <filesystem> 중 하나 clang++ 또는 g++의 머리 버전에 나는에 시도 할 때 할 수 http://melpon.org/wandbox

아직도 내가해야 할 다른 인수 있습니까? -lstdc++fs 그냥 experimental 버전을 제공합니다. 어떻게 공식적으로 허용되는 버전을 포함시킬 수 있습니까?

+5

파일 시스템과 관련된 문제를 제기하는 많은 국가기구 의견이 있습니다. 필자는 컴파일러 벤더가 이러한 모든 문제를 해결하기 위해 신중하게 기다리고 있다고 생각합니다. – metalfox

답변

6

C++ 표준에서 컴파일러를 정확히 호출해야하는 대상은 지정되지 않았습니다. 이것이 구현을 결정하는 것 같아서, 그래서 여전히 필요가있을 수도 -lstdc++fs.

C++ 17은 아직 공식적으로 표준이 아니며 구현시 아직 구현되지 않았거나 구현되지 않았을 수 있습니다. 마침내 C++ 17이 표준이 되더라도 마술처럼 구현을 변경하지는 않습니다. 링커가 구현에 필요한 플래그를 지정하거나 정의하지 않아야하는 플래그를 정의하지 않습니다. 그것은 완전히 관련이 없습니다.

C++ 17이 표준이되고 구현이이를 지원하기 시작한 후 공식적으로 허용되는 버전을 포함하는 방법은 완전히 구현에 따라 다릅니다. 우리는 아마도 그것이 어떻게 작동 하는지를 기다려 봐야 할 것입니다.

관련 문제