1

我是一个汽车工具新手;我正在使用 xerces-c 3.1 做一个需要解析 xml 文件的应用程序。

当我使用 apt-get 实用程序安装 xerces-c 库时,我的代码工作正常(然后 xerces-c 库和包含文件分别安装在 /usr/lib 和 /usr/include/xercesc 中)。在我的 configure.ac 文件中,我有以下宏:

AC_CHECK_LIB([xerces-c],[main],[],[AC_MSG_ERROR([*** xerces-c lib not found])])  

好的,正如我所说,这按预期工作。但是,我希望将库放在项目目录中(要包含在分发包中),我的问题就从这里开始了。

我卸载了 xerces-c 库,并将 xerces-c 库(从 xerces-c 网页下载)复制到我的项目目录。然后,我将宏添加到我的 confgure.ac 中:

    LDFLAGS="$LDFLAGS -L/home/xxxx/workspace/P3/src/lib"  

最后,我生成makefile并编译,只需在项目根目录中执行以下命令:

  • 自动配置
  • 汽车制造
  • 。/配置
  • 制作

编译看起来不错,链接看起来也不错:

g++  -g -O2  -L/home/xxxx/workspace/P3/src/lib -o app app-P3.o  -lxerces-c  

但是当我执行应用程序时,我收到了如下错误:

./src/app: error while loading shared libraries: libxerces-c-3.1.so: cannot open shared object file: No such file or directory  

我做错了什么?
提前致谢。

4

1 回答 1

0

由于您使用的是共享库libxerces-c-3.1.so,因此需要在ld. 在之前安装xerces-c软件包的情况下,libxerces 安装在/usr/lib可以找到它的位置或某个位置。您现在可以通过以下方式使其正常工作:

LD_LIBRARY_PATH=$PATH:/home/xxxx/workspace/P3/src/lib ./src/app

但这是您最终必须为您的软件包安装弄清楚的事情。

于 2013-06-12T18:40:44.717 回答