0

Ubuntu 11 に c_icap をインストールしようとすると、次のエラーが発生します。

make[2]: Entering directory `/home/madmin/milkyway/sol/server/3rdparty/c_icap-0.1.7/tests'
/bin/bash ../libtool --tag=CC   --mode=link gcc -I../include/ -D_REENTRANT -g -O2 -Wall -rdynamic -rpath /usr/local/c_icap/lib   -o test_cache test_cache.o  **-lpthread** ../libicapapi.la  -ldl
libtool: link: gcc -I../include/ -D_REENTRANT -g -O2 -Wall -rdynamic -o .libs/test_cache test_cache.o  **-lpthread** ../.libs/libicapapi.so -ldl -Wl,-rpath -Wl,/usr/local/c_icap/lib
../.libs/libicapapi.so: undefined reference to `pthread_rwlock_rdlock'
../.libs/libicapapi.so: undefined reference to `pthread_rwlock_wrlock'
../.libs/libicapapi.so: undefined reference to `pthread_rwlock_unlock'
collect2: ld returned 1 exit status

libicap.soの objdump を見て、これを取得したので、何が問題なのかわかりません

0000000000000000         *UND*  0000000000000000              pthread_rwlock_rdlock
0000000000000000       F *UND*  0000000000000000    pthread_mutex_destroy@@GLIBC_2.2.5
0000000000000000         *UND*  0000000000000000              pthread_rwlock_wrlock
0000000000000000       F *UND*  0000000000000000   pthread_mutex_unlock@@GLIBC_2.2.5
0000000000000000         *UND*  0000000000000000              pthread_rwlock_unlock

これは、pthread_mutex シンボルが objdump で正しく解決されているため、pthread lib が欠落していないことを示しています。また、-lpthread フラグも存在します。

私が持っているMakefileで

THREADS_LDADD = -lpthread
c_icap_LDADD = -lpthread libicapapi.la  -ldl

何か案は?

4

1 に答える 1

2

-pthread代わりにコンパイルしてください。

これには、必要なものがすべて含まれます。

于 2012-09-18T14:26:58.433 に答える