ฉันเพิ่งติดตั้ง XUbuntu 11.10 64 บิต แต่ฉันมีปัญหาในการรวบรวมตัวอย่าง pthread ที่ง่ายที่สุด
นี่คือรหัสpthread_simple.c
:
#include <stdio.h>
#include <pthread.h>
main() {
pthread_t f2_thread, f1_thread;
void *f2(), *f1();
int i1,i2;
i1 = 1;
i2 = 2;
pthread_create(&f1_thread,NULL,f1,&i1);
pthread_create(&f2_thread,NULL,f2,&i2);
pthread_join(f1_thread,NULL);
pthread_join(f2_thread,NULL);
}
void *f1(int *x){
int i;
i = *x;
sleep(1);
printf("f1: %d",i);
pthread_exit(0);
}
void *f2(int *x){
int i;
i = *x;
sleep(1);
printf("f2: %d",i);
pthread_exit(0);
}
และนี่คือคำสั่งรวบรวม
gcc -lpthread pthread_simple.c
ผลลัพธ์ที่ได้:
lptang @ tlp-linux: ~ / test / test-pthread $ gcc -lpthread pthread_simple.c /tmp/ccmV0LdM.o: ในฟังก์ชัน `main ': pthread_simple.c :(. text + 0x2c): การอ้างอิงที่ไม่ได้กำหนดกับ `pthread_create ' pthread_simple.c :(. text + 0x46): การอ้างอิงที่ไม่ได้กำหนดกับ `pthread_create ' pthread_simple.c :(. text + 0x57): การอ้างอิงที่ไม่ได้กำหนดกับ `pthread_join ' pthread_simple.c :(. text + 0x68): การอ้างอิงที่ไม่ได้กำหนดกับ `pthread_join ' collect2: ld ส่งคืนสถานะทางออก 1 รายการ
ไม่มีใครรู้ว่าสิ่งที่ทำให้เกิดปัญหาหรือไม่
ใช่ฉันใช้สภาพแวดล้อมก่อน มันควรจะแสดงอย่างถูกต้อง
—
chtlp
BTW โปรดรวบรวมด้วย
—
Mat
-Wall
คุณไม่มีส่วนหัว (และ sr_ ถูกต้อง)
#include <pthread.h>