|
在《Beginning Linux Programming 3rd》的第481页
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <pthread.h>
- #include <string.h>
- char message[] = "Hello World";
- void *thread_function(void *arg){
- printf("thread_function is running. Argument was %s\n", (char *)arg);
- sleep(3);
- strcpy(message, "Bye!");
- pthread_exit("Thank you for the CPU time");
- }
- int main(){
- int res;
- pthread_t a_thread;
- void *thread_result;
- res = pthread_create(&a_thread, NULL, thread_function, (void *)message);
- if(0 != res){
- perror("Thread creation failed");
- exit(EXIT_FAILURE);
- }
- printf("Waiting for thread to finish...\n");
- res = pthread_join(a_thread, &thread_result);
- if(0 != res){
- perror("Thread join failed");
- exit(EXIT_FAILURE);
- }
- printf("Thread joined, it returned %s\n", (char *)thread_result);
- printf("Message[] is now %s\n", message);
- return 0;
- }
复制代码
编译输出为
- [root@localhost thread]# gcc -Wall thread.c -o thread
- /tmp/cca0ZbjQ.o(.text+0x69): In function 'main':
- : undefined reference to 'pthread_create'
- /tmp/cca0ZbjQ.o(.text+0xae): In function 'main':
- : undefined reference to 'pthread_join'
- collect2: ld returned 1 exit status
复制代码
咋整啊? |
|