我没有拿起图书馆

时间:2014-07-23 18:46:57

标签: c++ ld

/usr/local/lib内我有以下文件:

libxerces-c.so
libxerces-c.so.28
libxerces-c.so.28.0

我的链接器在此命令失败:

g++ -m64 -o waspxs ConfigureWaspJobs.o MainWindow.o DataTypes.o waspxs.o \
    XercesString.o qrc_buttons.o moc_ConfigureWaspJobs.o moc_MainWindow.o \
    -L/usr/X11R6/lib64 -L../common -L../prewaspwdll -L/usr/local/lib \
    -pthread -lcommon -lprewaspwdll -lxerces-c -lQt5Widgets \
    -L/usr/lib/x86_64-linux-gnu -lQt5Gui -lQt5Core -lGL -lpthread
/usr/bin/ld: cannot find -lxerces-c

请注意,这些选项包括-L/usr/local/lib-lxerces-c

我在这里缺少什么?

当我在libs上运行file时:

$ file libxerces*
libxerces-c.so:           broken symbolic link to `/home/samuel/Desktop/xerces-c-src_2_8_0/lib/libxerces-c.so.28'
libxerces-c.so.28:        symbolic link to `libxerces-c.so.28.0'
libxerces-c.so.28.0:      ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x44c1a6dbfbe5b51a17fc0ce42097af88a8e8a7f0, not stripped
libxerces-depdom.so:      broken symbolic link to `/home/samuel/Desktop/xerces-c-src_2_8_0/lib/libxerces-depdom.so.28'
libxerces-depdom.so.28:   symbolic link to `libxerces-depdom.so.28.0'
libxerces-depdom.so.28.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xc9f643c520055a931c596f713853654192a5a7fa, not stripped

1 个答案:

答案 0 :(得分:3)

由于您显式构建了64位二进制文​​件(因为您使用的是-m64),因此应确保安装了64位版本的xerces。通常,64位库目录会附加64。例如:/usr/local/lib64


file命令报告符号链接已损坏。因此,无法找到库。要修复,请删除损坏的链接,然后创建一个固定链接。

rm /usr/local/lib/libxerces-c.so
ln -s /usr/local/lib/libxerces-c.so.28 /usr/local/lib/libxerces-c.so

如果您的ln版本支持它,您可以使用一个命令执行此操作:

ln -sf /usr/local/lib/libxerces-c.so.28 /usr/local/lib/libxerces-c.so