> 백엔드 개발 > C++ > 내 C `std::thread` 코드가 GCC가 있는 Linux에서 링크에 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

내 C `std::thread` 코드가 GCC가 있는 Linux에서 링크에 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-29 07:08:09
원래의
245명이 탐색했습니다.

Why Does My C   `std::thread` Code Fail to Link on Linux with GCC, and How Can I Fix It?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿