2012-03-16 91 views
4

我試圖編譯鏈接我的程序與「dmalloc」時出現問題。'ld'無法鏈接符號,雖然它們在庫中

bin 
+--dmalloc 

include 
+--dmalloc.h 

lib 
+--libdmalloc.a 
+--libdmallocth.a 

main.c 

我有以下目錄結構

現在我嘗試編譯我的程序使用以下命令:

gcc -Iinclude -Llib -ldmalloc -DDMALLOC main.c 
/tmp/ccSDFmWj.o: In function `main': 
main.c:(.text+0x29): undefined reference to `dmalloc_malloc' 
collect2: ld returned 1 exit status 

好吧,我明白,有與鏈接的符號,LD問題根本找不到對dmalloc_malloc的引用。然而...

nm lib/libdmalloc.a | grep dmalloc_malloc 
0000000000001170 T dmalloc_malloc 
0000000000000fe0 t dmalloc_malloc.part.6 

我很困惑...符號在那裏的圖書館。爲什麼'ld'有問題?

回答

5

列表庫最後

gcc -Iinclude -Llib -DDMALLOC main.c -ldmalloc 
+0

就像一個魅力!謝謝! – Melon 2012-03-16 12:01:25