컴파일하는 동안 -pthread와 -lpthread의 차이점
의 차이 무엇입니까 gcc -pthread
및 gcc -lpthread
멀티 스레드 프로그램을 컴파일하는 동안 사용됩니까?
-pthread
컴파일러에게 pthread 라이브러리에서 링크하고 스레드에 대한 컴파일을 구성하도록 지시합니다.
예를 들어 다음은 -pthread
Ubuntu 컴퓨터에 설치된 GCC 패키지 에서 옵션이 사용될 때 정의되는 매크로를 보여줍니다 .
$ gcc -pthread -E -dM test.c > dm.pthread.txt
$ gcc -E -dM test.c > dm.nopthread.txt
$ diff dm.pthread.txt dm.nopthread.txt
152d151
< #define _REENTRANT 1
208d206
< #define __USE_REENTRANT 1
이 -lpthread
옵션을 사용하면 pthread 라이브러리가 연결될뿐입니다. 미리 정의 된 매크로는 정의되지 않습니다.
결론 : -pthread
옵션을 사용해야합니다 .
참고 :이 -pthread
옵션은 GCC 문서에서 플랫폼 별 옵션으로 문서화되어 있으므로 항상 사용할 수있는 것은 아닙니다. 그러나 GCC 문서에 명시 적으로 나열되지 않은 플랫폼 (예 : i386 및 x86-64)에서 사용할 수 있습니다. 사용 가능한 경우 사용해야합니다.
또한 -pthreads
( -pthread
Solaris 2에 대한 동의어로 나열 됨 ) 및 -mthread
(i386 및 x86-64 Windows에서 MinGW 특정 스레드 지원용 )과 같은 다른 유사한 옵션이 GCC에서 사용되었습니다 . 내 이해는 GCC가 -pthread
앞으로 균일하게 사용하려고 노력하고 있다는 것입니다.
-pthread
pthreads 라이브러리로 멀티 스레딩 지원을 추가합니다. 이 옵션은 전처리 기와 링커 ( man gcc
) 모두에 대한 플래그를 설정합니다 .
동안
-lpthread
링크하는 동안 존재하는 것은 전처리 중에 영향을 미치지 않습니다.
참고 URL : https://stackoverflow.com/questions/23250863/difference-between-pthread-and-lpthread-while-compiling
'programing' 카테고리의 다른 글
Timer와 DispatcherTimer 비교 (0) | 2020.08.27 |
---|---|
Python 2.7에서 인쇄 된 괄호가 자발적인 이유는 무엇입니까? (0) | 2020.08.27 |
패치를 적용 할 때 "1 줄에 공백 오류 추가"란 무엇을 의미합니까? (0) | 2020.08.27 |
화면이 아닌 셀별로 UICollectionView 페이징 (0) | 2020.08.27 |
애플리케이션 상태 확인을 위해 / healthz를 사용하는 규칙은 어디에서 왔습니까? (0) | 2020.08.27 |