2012-03-16 35 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