>백엔드 개발 >C++ >\'-pthread\'를 사용해도 내 멀티스레드 코드에서 여전히 \'std::system_error\'가 발생하는 이유는 무엇입니까?

\'-pthread\'를 사용해도 내 멀티스레드 코드에서 여전히 \'std::system_error\'가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 09:29:31310검색

Why Does My Multithreaded Code Still Throw 'std::system_error' Even With '-pthread'?

g를 사용하여 멀티스레드 코드 컴파일: 'std::system_error' 해결됨

멀티스레드 코드를 컴파일하는 동안 'std::system_error' 오류 발생 g를 사용하면 실망스러울 수 있습니다. '-pthread' 플래그를 명시적으로 지정했음에도 불구하고 문제가 지속됩니다.

제공된 코드를 조사해본 결과 뚜렷한 문제는 없는 것 같습니다. 그러나 문제는 gcc의 버그로 인해 발생합니다. SO C 채팅 회원이 제공한 해결 방법은 다음과 같은 솔루션을 제공합니다.

-Wl,--no-as-needed

컴파일 명령에 추가하면 이 플래그가 문제를 해결하여 다중 스레드 코드가 성공적으로 컴파일되고 실행될 수 있습니다. 업데이트된 컴파일 명령은 다음과 같습니다.

$ g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed

위 내용은 \'-pthread\'를 사용해도 내 멀티스레드 코드에서 여전히 \'std::system_error\'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.