Linux에서 GCC와 함께 std::thread를 사용할 때 연결 문제 해결
C를 사용한 멀티스레딩 영역에서 C 표준 라이브러리는 다음을 제공합니다. std::thread 클래스. Linux 시스템에서 GCC와 함께 std::thread를 활용하려고 하면 다음 오류가 발생할 수 있습니다.
terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted
원인:
이 오류는 연결이 적절하다는 것을 나타냅니다. 컴파일러가 std::thread와 관련된 종속성을 해결하기 위한 옵션이 지정되지 않았습니다. 특히 Linux에서 pthread 라이브러리는 std::thread 구현에 포함됩니다.
해결책:
이 문제를 해결하려면 -pthread 컴파일러 옵션이 필요합니다. 취업하다. 이 옵션은 컴파일러에게 프로그램을 pthread 라이브러리에 연결하도록 지시합니다. 적절한 연결 옵션을 사용하여 코드를 올바르게 컴파일하는 방법은 다음과 같습니다.
g++ -std=c++0x test.cpp -pthread
연결 옵션 배치:
-pthread 옵션이 나열되어야 한다는 점에 유의하는 것이 중요합니다. 컴파일 시 소스파일(.cpp) 이후. 이렇게 하면 컴파일러가 종속성을 올바르게 해결합니다.
수정된 명령:
-pthread 옵션을 추가하면 수정된 컴파일 명령이 다음과 같이 나타납니다.
g++ -std=c++0x test.cpp -pthread
-pthread 옵션을 통합하면 코드가 성공적으로 컴파일 및 실행되어 std::thread를 허용합니다. Linux 환경에서 멀티스레딩에 맞게 작동합니다.
위 내용은 내 C `std::thread` 코드가 GCC가 있는 Linux에서 링크에 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!