오류(ERROR)/LINUX ERROR

[LINUX] pthread.h include 시 컴파일 에러 (소켓)

옐옐루 2022. 10. 27. 12:57

IPC 소켓 모델 프로그래밍에서 Thread 방식을 쓸 경우 . thread 서버 컴파일이 안되는 경우가 있다.

Thread 방식으로 소통을 하려고 할 경우 서버관련 c 파일과 클라이언트관련 c 파일을 생성해야한다.

본인은 서버관련 c 파일의 이름을 Thread.c 라고 명명하였다. (이름은 아무렇게 해도 상관 없음 / 확장자만 잘 지켜주면됨)


Thread.c 파일을 [gcc -o [컴파일이름][c파일이름]] 으로 컴파일을 시도 하였을때 아래와 같은 에러가 뜨게 된다.  

 

 

내용을 살펴보면 'pthread_create'가 명확하지 않다고 나와있다. 

 

1. Thread.c 파일 (서버c파일에) 인클루드 옵션을 살펴볼 것 

 - 아래와 같은 <pthread.h>는 스레드 방식으로 소켓 소통을 할때 꼭 인클루드 시켜야 하는 헤더파일이다. 아래와 같이 포함 <pthread.h>를 포함했는지 유무를 확인 후 안되어있으면 넣어주도록 하자

 

 

하지만 <pthread.h>파일이 include 되어 있음에도 불구하고 위와 같은 오류가 뜨는 경우가 있다. 이 글을 쓴 이유이기도 함! 그럴땐 아래 2번으로 해결이 가능하다 

 

2. pthread.h 파일이 잘 인클루드 되어 있을 경우엔 

컴파일 방식에 -o 옵션만 넣지 말고 -lpthread 인자를 주어 컴파일을 해보자

[gcc -o [컴파일이름][c파일이름] -lpthread] 

로 컴파일을 시도했을경우 아래와 같이 정상적으로 컴파일 파일이 생성된 것을 확인할 수 있다.

 

반응형