2012-09-18 26 views
0

我打算在Ubuntu 11上安裝c_icap並獲取以下錯誤。與pthread鏈接的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 [email protected]@GLIBC_2.2.5 
0000000000000000   *UND* 0000000000000000    pthread_rwlock_wrlock 
0000000000000000  F *UND* 0000000000000000 [email protected]@GLIBC_2.2.5 
0000000000000000   *UND* 0000000000000000    pthread_rwlock_unlock 

這表明,並行線程lib中不缺少的pthread_mutex符號正確解析在objdump中。此外-lpthread標誌也存在。

在Makefile中,我有

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

任何想法?

回答

2

改爲編譯-pthread

這將包括所有需要的。