c++ - xerces-c 2.8 : error while loading shared libraries

标签 c++ c xml linker xerces-c

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

它使用 xerces-c 库来解析 xml 文件。编译没问题,但是当我尝试运行它时,我收到以下消息

./a.out: error while loading shared libraries: libxerces-c.so.28: cannot open shared object file: No such file or directory

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

#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;
}

编译如下:

g++ test.cpp -L./xml/xerces-c_2_8_0/lib -lxerces-c -I./xml/xerces-c_2_8_0/include

令人惊讶的是,该文件实际上在那里:

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 : error while loading shared libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722386/

相关文章:

c++ - 线程,如何独立播种随机数生成器?

c++ - 如何从双端队列中删除随机元素

c - 1[&array] 是 &array[sizeof(array)/sizeof(array[0])] 的合适替代品还是太混淆了?

c++ - 为什么通过 ***char 传递给函数的 nullptr 终止数组会丢失终止元素?

c++ - OpenGL GL_LINE_STRIP 在 glEnd 之后给出错误 1281(无效值)

关于 printf() 的方式和内容的澄清;是?

c - 使用循环在数组中生成唯一随机数

xml - 使用 Excel VBA 创建 XML 文件

c# - 用空字符串编写 XMLDocument 元素 innertext 添加回车换行符

ruby-on-rails - ruby to_xml 设置根属性