我正在尝试编译在Red Hat Linux上的HP UX服务器上运行的程序。

它使用xerces-c库来解析xml文件。编译可以,但是当我尝试运行它时,出现以下消息



我编写了一个非常简单的程序来尝试了解发生了什么:

#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/TransService.hpp>
#include <xercesc/parsers/SAXParser.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>



int main(int argc, char* argv[])
{
        return 0;
}

并像这样编译它:



出乎意料的是,文件实际上在那里:
lib]$ ls
libxerces-c.a   libxerces-c.so.28    libxerces-depdom.a   libxerces-depdom.so.28
libxerces-c.so  libxerces-c.so.28.0  libxerces-depdom.so  libxerces-depdom.so.28.0

有什么想法吗 ?我觉得我想念什么,但不知道是什么。

提前致谢。

最佳答案

运行ldd a.out并查看链接器是否可以解析正确的.so文件

导出LD_LIBRARY_PATH以包括当前文件夹(以与PATH变量相同的方式)并再次检查ldd

关于c++ - xerces-c 2.8:加载共享库时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1722386/

10-09 06:36