-
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; }'개발' 카테고리의 다른 글
스핀락, 뮤텍스, 세마포어 (0) 2018.11.07 FFmpeg (0) 2018.10.31 RCU (Read-Copy Update) (0) 2018.10.30 Github 페이지를 이용해서 이력서 만들기 (1) 2018.09.27 Cgroup (Control Group) (0) 2018.09.15