3
使用gcc
時,我在安裝-l
選項時遇到了一些問題。這是一個精簡版,用於重現問題。在gcc中放置`-l'選項
T.C:
#include <pthread.h>
int main() {
pthread_create(0, 0, 0, 0);
}
和終端:
$ gcc -lpthread t.c
/tmp/ccmkwV7B.o: In function `main':
t.c:(.text+0x29): undefined reference to `pthread_create'
collect2: ld returned 1 exit status
$ gcc t.c -lpthread
$ (compiles ok)
爲什麼我必須把-lpthread
到底,使其工作?而且似乎這個問題只發生在32位的linux上。
我的環境信息如下所示:
gcc -lpthread t.c
在本機上失敗。
$ gcc --version
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
$ uname -rm
3.0.0-12-generic i686
gcc -lpthread t.c
適用於這臺機器。
$ uname -rm
2.6.18-274.3.1.el5 x86_64
$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51)
我擡頭GCC手冊,它說,「-l的位置是顯著」。這究竟意味着什麼?
這取決於鏈接器上的最多。如果你可以爲兩個系統做'ld --version',那可能會更有啓發性。 – 2011-12-23 05:19:22