【问题标题】:'ld' cannot link symbols, although they are in library'ld' 不能链接符号,尽管它们在库中
【发布时间】:2012-03-16 11:42:17
【问题描述】:

我在尝试使用“dmalloc”编译和链接我的程序时遇到问题。

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'有问题?

【问题讨论】:

    标签: c compilation linker ld dmalloc


    【解决方案1】:

    列出库最后

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      相关资源
      最近更新 更多