C++ 包括并使用带有自动工具的库
我是一个自动工具新手;我正在使用xerces-C3.1编写一个需要解析xml文件的应用程序 当我使用apt-get实用程序安装xerces-c库时,我的代码工作正常(然后,xerces-c库和include文件分别安装在/usr/lib和/usr/include/xercesc中)。在configure.ac文件中,我有以下宏:C++ 包括并使用带有自动工具的库,c++,autotools,C++,Autotools,我是一个自动工具新手;我正在使用xerces-C3.1编写一个需要解析xml文件的应用程序 当我使用apt-get实用程序安装xerces-c库时,我的代码工作正常(然后,xerces-c库和include文件分别安装在/usr/lib和/usr/include/xercesc中)。在configure.ac文件中,我有以下宏: AC_CHECK_LIB([xerces-c],[main],[],[AC_MSG_ERROR([*** xerces-c lib not found])]) 好
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
我做错了什么?提前感谢。因为您使用的是共享库
libxerces-c-3.1。所以需要在ld
可以找到它的地方。在前面安装了xerces-c
包的情况下,libxerces安装在/usr/lib
或可以找到它的地方。您可以通过以下方式使其暂时工作:
LD_LIBRARY_PATH=$PATH:/home/xxxx/workspace/P3/src/lib ./src/app
但是,这是您在安装软件包时最终必须解决的问题。“我希望将库放在项目目录中,我的问题就从这里开始。”事实上,这是许多问题的开始。解决办法是不要这样做!不要将自动工具视为软件包管理系统,因为这不是其功能。