0

.o ファイルをリンクすると、いくつかの問題が発生しました。

gcc -L/usr/local/apr/lib -lapr-1 -pthread -laprutil-1  devpkg.o bstrlib.o db.o shell.o commands.o   -o devpkg
devpkg.o: In function `main':
/root/workspace/devpkg/devpkg.c:21: undefined reference to `apr_pool_initialize'
/root/workspace/devpkg/devpkg.c:22: undefined reference to `apr_pool_create_ex'
/root/workspace/devpkg/devpkg.c:36: undefined reference to `apr_getopt_init'
/root/workspace/devpkg/devpkg.c:38: undefined reference to `apr_getopt'

「objdump -T」を使用してライブラリをチェックすると、次のように返されました。

objdump -T libapr-1.so|grep apr_pool_initialize
000000000001db00 g    DF .text  00000000000000fb  Base        apr_pool_initialize

なぜこれが起こったのですか?

4

1 に答える 1

2

これは単純な依存関係の問題である可能性が最も高いです。リンク先のすべてのライブラリを .o ファイルの後に、相互の依存関係に基づいて正しい順序でリストしてみてください。

于 2014-08-28T07:38:19.867 に答える