답변:
시험:
gcc -dumpspecs | grep pthread
로 시작하는 것을 찾으십시오 %{pthread:
.
내 컴퓨터에서 파일이로 컴파일 -D_REENTRANT
되고에 링크됩니다 -lpthread
. 다른 플랫폼에서는 다를 수 있습니다. -pthread
대부분의 이식성을 위해 사용하십시오 .
_REENTRANT
GNU libc에서을 사용하면 일부 libc 헤더의 작동 방식이 변경됩니다. 구체적인 예로 errno
스레드 로컬 위치를 반환하는 함수 를 호출합니다.
-D_REENTRANT
또는 -pthread
자동으로 제공 될 수 있습니다 . 당신의 빌드를 실행 g++ -v
하고 그것은 컴파일러 프론트 엔드는 사실에 통과 어떤 매개 변수에 대한 출력의 많은 덤프 cc1plus
와 ld
.
errno
일반적으로 전처리 만하 는 것은 아닙니다 . gcc 최적화와 관련하여 hpl.hp.com/techreports/2004/HPL-2004-209.pdf 문서 가 실제로 어떤 관련이 있는지 잘 모르겠지만 , 검토의 깊이에 깊은 인상을 받았습니다.