g++ ADS_APIServer.o ../../udt/src/libudt.so ../Commlib/libCommlib.so libADS_APIServer.so -o ADS_APIServer
ADS_APIServer.o: In function soapOpenThread(void*)':
pthread_create'
ADS_APIServer.cpp:(.text+0x8b0): undefined reference to
ADS_APIServer.o: In function main':
pthread_create'
ADS_APIServer.cpp:(.text+0xd85): undefined reference to
ADS_APIServer.cpp:(.text+0xdb1): undefined reference to pthread_create'
pthread_create'
ADS_APIServer.cpp:(.text+0xddd): undefined reference to
ADS_APIServer.cpp:(.text+0xe09): undefined reference to pthread_create'
pthread_create' follow
ADS_APIServer.o:ADS_APIServer.cpp:(.text+0xe38): more undefined references to
../../udt/src/libudt.so: undefined reference to pthread_mutex_trylock'
pthread_mutexattr_settype'
../Commlib/libCommlib.so: undefined reference to
../../udt/src/libudt.so: undefined reference to pthread_key_create'
dlsym'
../Commlib/libCommlib.so: undefined reference to
../Commlib/libCommlib.so: undefined reference to dlerror'
pthread_getspecific'
../../udt/src/libudt.so: undefined reference to
../Commlib/libCommlib.so: undefined reference to pthread_mutexattr_destroy'
pthread_mutexattr_init'
../Commlib/libCommlib.so: undefined reference to
../../udt/src/libudt.so: undefined reference to pthread_key_delete'
dlopen'
../Commlib/libCommlib.so: undefined reference to
../../udt/src/libudt.so: undefined reference to pthread_setspecific'
dlclose'
../Commlib/libCommlib.so: undefined reference to
../../udt/src/libudt.so: undefined reference to `pthread_join'
自己顶下,随便结束问答,问题已解决,问题产生的原因是:
pthread这个库不是系统库,在链接时需要在命令行指定 -lpthread 项
dl* 则需要在命令行指定 -ldl 项
另外在linux下执行程序时,如果需要链接动态库,下面两个命令有用
1 echo LD_LIBRARY_PATH # 该命令查看当前的配置路径
2 export LD_LIBRARY_PATH=.:../*:/home/.. # 添加路径,其中每个路径以“:”分隔