Linux 에서 정의되지 않은 참조입니다 pthread_create

난 다음 데모 끕니까 웹 (https://computing.llnl.gov/tutorials/pthreads/) 에서 인계받아

#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS     5

void *PrintHello(void *threadid)
{
   long tid;
   tid = (long)threadid;
   printf("Hello World! It's me, thread #%ld!\n", tid);
   pthread_exit(NULL);
}

int main (int argc, char *argv[])
{
   pthread_t threads[NUM_THREADS];
   int rc;
   long t;
   for(t=0; t<NUM_THREADS; t++){
      printf("In main: creating thread %ld\n", t);
      rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
      if (rc){
         printf("ERROR; return code from pthread_create() is %d\n", rc);
         exit(-1);
      }
   }
   pthread_exit(NULL);
}

그러나 내가 내 시스템 (Ubuntu Linux 실행 9.04) I get it on 컴파일하십시오 다음 오류:

corey@ubuntu:~/demo$ gcc -o term term.c
term.c: In function ‘main’:
term.c:23: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/cc8BMzwx.o: In function `main':
term.c:(.text+0x82): undefined reference to `pthread_create'
collect2: ld returned 1 exit status

39 이 doesn& 만들지 않았기 때문에, t ',' 파트리드리히 다는일은 감지에서 헤더입니다 dm_ownerdm_owner '기능을 하는' pthread_create 있다. # 39 의 what& 잘못된 것, 아무 생각 없어?

질문에 대한 의견 (6)

, Incorrect.&l br&gt 지금까지 이 문제의 답을 모두 있다. 올바른 linux용 명령은 다음과 같습니다.

gcc -pthread -o term term.c

일반적으로 라이브러리를 소스 및 명령줄의 객체에는 따라야 할 수 없는 '및' 레프 트레더 ";; s # 39 option&quot it& 라리브러리 사양명세. 시스템에 설치된 리브프트리아드리아 '불과'

gcc -lpthread ...

링크 못합니다.

해설 (7)

eclipse 에서

,, 도서관이 linker-&gt properties-&gt c/c++Build-&gt setting-&gt mgcc c++컴파일러는 top 부품 추가, pthread&quot &quot.

해설 (1)

몇 가지 예를 들어, 이를 통해 아쿠탈리 컴파일하십시오 데사용됩니다 pthreads 코드는 명령 아래 표에 나와 계속할 경우 판독값 다음 자습서는:

https://computing.llnl.gov/tutorials/pthreads/ # 컴파일하기를

enter 이미지 여기에 설명을!

해설 (0)

Linux 에서 실행되는 터미널, 어떤 방법이 주효했는가 for me 는 다음과 같은 명령을 사용하여 컴파일하기를 (예를 들어 c 테스트리스 파일을 난 로렌아줌마가 컴파일하십시오 호출됨):

gcc -o test test.c -pthread

이를 통해 희망을 누군가!

해설 (0)

올바른 linux*용 명령은 다음과 같습니다.

gcc -o term term.c -lpthread
  1. 할 수 있는 이 명령은 명령 직후 동일팔레트에 - 레프 트레더 컴파일하십시오 떠날려하면 컴파일러를 사용하여 프로그램을 실행하십시오 파트리드리히 라이브러리란.
  2. mgcc 뻦 링크 라이브러리를 사용하여 파일. 이름 없이 링크 라이브러리를 사용하여 뻦 lib 접두어입니다.
해설 (1)

Cmake 를 사용하는 경우, 사용할 수 있습니다.

add_compile_options(-pthread)

또는

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
해설 (0)

이 컴파일하십시오 다음과 같습니다. pthread 데모 mgcc 디모스크 - o -

해설 (0)

Gcc 와 레프 트레더 '옵션' 를 사용해야 합니다.

해설 (2)

&quot pthread&quot, 추가 됩니다. = = = &gt, 링커, C/C++, 예절 있는 &gt 구축하십시오 &gt mgcc c++컴파일러는 라이브러리보다는 = &gt. 주요 부품 &quot, 라이브러리 (l) ". 그게 이

해설 (0)

비주얼 스튜디오 2019년 에서 '에서' 속성 페이지를 대체하십시오 pthread 프로젝트의.

&gt. 링커 - &gt. 명령행을 &gt -; 추가 옵션을

Pthread '텍스트' 를 입력합니다.

해설 (0)

확인란 맨페이지 및 얻을 수 있습니다.

  • 컴파일하십시오 및 연계 pthread.* -

"' 시놉시스 (줄거리)

include &lt pthread.h>;

(, 속성, pthread_attr_t pthread_t 스레드할 const int pthread_create void ( start_routine) (void ), void arg);

컴파일 및 연계 - pthread. . "'

해설 (0)

Pthread 는 CMake '의' i believe '다음' 의 적절한 방법은 추가 "' find_package (스래드입니다 필수)

target_link_libraries (helloworld cmake_thread_libs_init $ {} ) "'

해설 (0)

메뉴를 구성할 수 있는 안주타 http://www. gnu. 구축하십시오 관심용 프로젝트. Https://xxx. 있는 추가 옵션을 구성합니다.

LDFLAGS='-lpthread'

39, ll 도움말에서는 it& 희망을 누가 너무.

해설 (0)

가끔 사용하는 경우, 여러 라이브러리와는 라이브러리 의존성 확인. (예 - 레프 트레더 - 짜들. = &gt <; . - 레프 트레더 짜들)

해설 (0)