4

プログラムをコンパイルして「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'に問題があるのはなぜですか?

4

1 に答える 1

5

最後にライブラリを一覧表示します:

gcc -Iinclude -Llib -DDMALLOC main.c -ldmalloc
于 2012-03-16T11:45:36.053 に答える