2011-04-23 67 views
1

我調用該函數phtread_kill(gpsNavigationThread, 0)和GE下面的錯誤架構x86_64的C:用於建築x86_64的未定義符號

未定義的符號:

"_phtread_kill", referenced from: 
    _startgpswatchdog in ccXXNhjy.o 
ld: symbol(s) not found for architecture x86_64 

#include <pthread.h>所以我不知道是什麼問題是。

我鏈接如下

gcc gps_nav.c dijk.c serial.c parser.c nav_corelogic.c -I/usr/include/libxml2 -lxml2 -lm -lpthread -o logic 

我還的#include signal.h中,但我不知道如果有一個與它連接庫。 -lpthread

+0

你具體-m標誌編譯? -m32或-m64? – ShinTakezou 2011-04-23 17:00:03

+0

號我用上面的語句 – jarryd 2011-04-23 17:08:50

+0

什麼操作系統?我認爲人們正在假設Linux,但現代基於Linux的系統不使用C符號名稱的下劃線前綴。也許你在混合另一個操作系統的二進制代碼? – 2011-04-23 17:09:38

回答

8

這是

pthread_kill(gpsNavigationThread, 0) 

不是:

phtread_kill(gpsNavigationThread, 0) 
+0

哦,我的,只是一個錯字! – ShinTakezou 2011-04-23 17:29:25

+0

呵呵。感謝您發現這一點。 – jarryd 2011-04-23 18:17:38

+0

我做了與strcopy相同的錯誤(這是strcpy) – 2012-08-25 08:40:21

0

你有與pthreads庫鏈接?

+0

更新了我的問題謝謝 – jarryd 2011-04-23 16:56:55

0

你與-lpthread編譯:

+0

更新了我的問題謝謝 – jarryd 2011-04-23 16:57:05

0

試試-pthread選項,它應該爲編譯和鏈接設置適當的選項。