我有一个项目组织为
\bin\cmain
\lib\libxmlrpc_client++.a
\lib\libxmlrpc_client++.so.4
\lib\libxmlrpc_client++.so.4.16
我的c程序 cmain
需要动态链接clib.so.4。在编译代码时,我使用 -L.../lib
来指示目录 lib
并使用 -lxmlrpc_client++
。但是,我的代码在加载共享库时出错:
libxmlrpc_client++.so.4: cannot open shared object file: No such file or directory
有什么想法可以解决这个问题吗?
PS:问题解决了,问题很好的参考:http: //gcc.gnu.org/ml/gcc-help/2005-12/msg00017.html
原文由 Richard 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要告诉动态链接器在哪里查找库。假设这是某种 UNIX/Linux 系统,这可以通过在执行程序之前设置 LD_LIBRARY_PATH 环境变量来完成:
或者通过在编译时设置运行时链接器路径:
两种方法都有问题。谷歌“为什么 LD_LIBRARY_PATH 不好”。用于设置运行时链接器路径的命令行选项因编译器而异。