我试图在Fedora 19上编译iucute2-3-12-0,我已经安装了BerkeleyDB,ls -la /usr/lib/libdb*命令给出了以下结果:
-rwxr-xr-x 1 root root 1847852 May 16 2013 /usr/lib/libdb-5.3.so
lrwxrwxrwx 1 root root 12 Sep 18 20:15 /usr/lib/libdb-5.so -> libdb-5.3.so
lrwxrwxrwx 1 root root 18 Jan 4 12:57 /usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.7.4
-rwxr-xr-x 1 root root 317720 Nov 11 19:24 /usr/lib/libdbus-1.so.3.7.4我有最新版本的Bison和Flex。我使用内核: 3.12.8-200.fc19.x86_64。我在/usr/lib and /usr/lib64有ldb。不过,我没有在LDFLAGS中找到任何Makefile。
我收到一个错误:
ssfilter.y: conflicts: 27 shift/reduce
/usr/bin/ld: cannot find -ldb
collect2: error: ld returned 1 exit status
make[1]: *** [arpd] Error 1
make: *** [all] Error 2仔细看一看make日志的末尾就会发现:
make[1]: Entering directory `/root/Traffic_Shaping/iproute2-3.12.0/bridge'
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o bridge.o bridge.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o fdb.o fdb.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o monitor.o monitor.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o link.o link.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o mdb.o mdb.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o vlan.o vlan.c
gcc bridge.o fdb.o monitor.o link.o mdb.o vlan.o ../lib/libnetlink.a ../lib/libutil.a ../lib/libnetlink.a ../lib/libutil.a -o bridge
make[1]: Leaving directory `/root/Traffic_Shaping/iproute2-3.12.0/bridge'
make[1]: Entering directory `/root/Traffic_Shaping/iproute2-3.12.0/misc'
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o ss.o ss.c
bison ssfilter.y -o ssfilter.c
ssfilter.y: conflicts: 27 shift/reduce
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -c -o ssfilter.o ssfilter.c
gcc ss.o ssfilter.o ../lib/libnetlink.a ../lib/libutil.a -o ss
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -o nstat nstat.c -lm
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -o ifstat ifstat.c ../lib/libnetlink.a ../lib/libutil.a -lm
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -o rtacct rtacct.c ../lib/libnetlink.a ../lib/libutil.a -lm
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -I/usr/include/libdb4 -o arpd arpd.c ../lib/libnetlink.a ../lib/libutil.a -ldb -lpthread
/usr/bin/ld: cannot find -ldb
collect2: error: ld returned 1 exit status
make[1]: *** [arpd] Error 1
make[1]: Leaving directory `/root/Traffic_Shaping/iproute2-3.12.0/misc'
make: *** [all] Error 2我怎样才能让ld找到libdb?
发布于 2014-01-28 00:22:26
lib将包含32位库和lib64 64位。我假设您的gcc正在生成64位二进制文件。因此,/lib64 (/usr/lib64)需要有正确的数据库库。您可以使用--verbose手动运行gcc命令,查看它所做的一切。(即它正在运行的ld命令)
https://unix.stackexchange.com/questions/111223
复制相似问题