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]
로 컴파일을 시도했을경우 아래와 같이 정상적으로 컴파일 파일이 생성된 것을 확인할 수 있다.
반응형
'오류(ERROR) > LINUX ERROR' 카테고리의 다른 글
Rocky Linux 에 Oracle(오라클)-19c 설치 : compat 오류 (0) | 2022.10.12 |
---|