【发布时间】:2010-10-20 15:28:16
【问题描述】:
我有一个项目,它是一个链接 libresolv 的库, 它在最近的发行版上运行良好:Ubuntu 10.x Fedora 13、Mandriva 2010.1 但在 Centos 5.x 上出现以下错误
安装的glibc是:glibc-2.5-18.el5_1.1
g++ -DHAVE_CONFIG_H -I. -I./include -I/usr/include/postgresql -O3
-ansi -Wall -Wno-deprecated -D_FORTIFY_SOURCE=0 -MT testUpLog.o -MD
-MP -MF .deps/testUpLog.Tpo -c -o testUpLog.o testUpLog.cc
mv -f .deps/testUpLog.Tpo .deps/testUpLog.Po
/bin/sh ./libtool --tag=CXX --mode=link g++ -O3 -ansi -Wall
-Wno-deprecated -D_FORTIFY_SOURCE=0 -L/usr/lib64 -L/lib64
-L/usr/lib64/mysql -o testUpLog testUpLog.o libUpTools.la -lpq
-lmysqlclient -lssl -lpthread
libtool: link: g++ -O3 -ansi -Wall -Wno-deprecated -D_FORTIFY_SOURCE=0
-o .libs/testUpLog testUpLog.o -L/usr/lib64 -L/lib64
-L/usr/lib64/mysql ./.libs/libUpTools.so -lpq -lmysqlclient -lssl
-lpthread
./.libs/libUpTools.so: undefined reference to `__ns_name_uncompress'
./.libs/libUpTools.so: undefined reference to `__ns_initparse'
./.libs/libUpTools.so: undefined reference to `__ns_parserr'
collect2: ld returned 1 exit status
make[1]: *** [testUpLog] Error 1
make[1]: Leaving directory `/tmp/UpTools-8.5.3'
make: *** [check-am] Error 2
library.la 文件包含:
dlname='libUpTools.so.0'
library_names='libUpTools.so.0.0.0 libUpTools.so.0 libUpTools.so'
old_library='libUpTools.a'
inherited_linker_flags=''
dependency_libs=' -L/usr/lib64 -L/lib64 -L/usr/lib64/mysql -lpq
-lmysqlclient -lssl -lpthread'
weak_library_names=''
current=0
age=0
revision=0
installed=no
shouldnotlink=no
dlopen=''
dlpreopen=''
libdir='/usr/lib'
你可以阅读configure.ac on
提前致谢
【问题讨论】:
-
您的问题到底是什么?你试过什么?
-
ptoato,我的问题是如何针对 libresolv 进行编译。当然,您看不到任何“-lresolv”。但即使在运行 ./configure 时添加 LIBS="$LIBS -lresolv" 并在最后添加“-lresolv”dependency_libs 的 libtool 也会出现这些错误。我的意思是:如果我链接 libresolv,为什么会输出错误。我希望我的问题更清楚:) 如果你愿意,我可以粘贴我的 Makefile.am。
-
运行configure时,是否找到库?您可能希望将 AC_MSR_ERROR 节添加到 AC_SEARCH_LIBS 的第四个参数以确保它找到库。
标签: c++ autotools glibc libtool