-
gcc로 pthread API 컴파일하기개발/삽질 기록 2018. 10. 30. 21:59
왠만한 C 코드들은 'gcc 파일명' 명령어로 빌드가 가능한데 코드 안에서 pthread API를 사용하고 컴파일을 하면 아래와 같은 에러 메시지가 나온다.
kwony@kwony:~$ gcc thread.c
thread.c:(.text+0x79): undefined reference to `pthread_create'
thread.c:(.text+0xa9): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
gcc 컴파일 스크립트에 디폴트로 pthread 라이브러리가 포함되지 않아서 발생하는 에러다. `-lpthread` 를 옵션으로 줘서 pthread 라이브러리를 포함시켜 빌드하면 해결 할 수 있다.
gcc thread.c -lpthread
아래 코드로 테스트를 해봤다.
#include <pthread.h> #include <stdlib.h> void *test(void *data) { } int main() { int a = 100; pthread_t thread_t; int status; if (pthread_create(&thread_t, NULL, test, (void *)&a) < 0) { perror("thread create error:"); exit(0); } pthread_join(thread_t, (void **)&status); printf("Thread End %d\n", status); return 1; }
'개발 > 삽질 기록' 카테고리의 다른 글
RxJava: mapper function returned null 에러 (0) 2020.02.14 addr2line (0) 2018.12.22 Github 페이지를 이용해서 이력서 만들기 (1) 2018.09.27 conda tensorflow 설치 및 jupyter notebook 연결 (0) 2018.08.03 git rebase 를 이용해 중간 커밋 수정하기 (0) 2018.07.25