GCC 6.0, 특히 실험적::filesystem 라이브러리에서 최신 C 1z 기능을 활용하려고 할 때 다음과 같은 문제가 발생할 수 있습니다. 다음과 같은 링커 오류가 발생합니다.
undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
파일 시스템 TS(기술 사양)가 C 1z(현재 C 20) 표준의 일부가 아니라는 점에 유의하는 것이 중요합니다. 따라서 오류는 C 1z 지원과 관련된 것이 아니라 적절한 라이브러리와의 연결과 관련이 있습니다.
문제를 해결하려면 코드를 정적 라이브러리와 연결하세요. lstdc fs. 이는 실험적::파일 시스템 기능에 필요한 구현을 제공합니다. 링커 명령에서 이를 의존하는 모든 객체 뒤에 배치하는 것을 잊지 마세요.
2017년 11월:
GCC 8.x 네임스페이스 std::filesystem 아래에 C 17 호환 파일 시스템 라이브러리를 도입합니다. 사용하려면 -std=gnu 17 및 -lstdc fs가 모두 필요합니다.
2019년 1월:
GCC 9에서는 -lstdc fs 없이 std::filesystem 구성 요소를 사용할 수 있습니다.
4월 2024:
GCC 13.3은 다른 실험적 정의와 함께 -lstdc exp에 실험적::파일 시스템 기호를 제공합니다.
위 내용은 GCC에서 `experimental::filesystem`을 사용할 때 링커 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!