c-程序无法加载共享库GCC



首先,这里是错误消息:./Game: error while loading shared libraries: libEngine.so: cannot open shared object file: No such file or directory

编译时没有问题。

编译游戏时传递给GCC的库目录:-L../../bin -L.

目录树: ENGINE -bin --Game (executable) --libEngine.so -Game --src ---source code + Game makefile -Engine --src ---source code + shared library makefile 我可以根据需要提供更多信息。

设置LD_LIBRARY_PATH是可能的,但通常不是最佳解决方案。特别是,对环境的依赖产生的程序对你有效,但对你的同事或教授无效(因为他们的环境不同(。

-rpath=/path/to/bin添加到连接线上消除了对环境的干扰。

更好的是:-rpath='$ORIGIN'允许您将整个安装目录移动到不同的位置,并且程序仍然可以在自己的bin/目录中找到其共享库。

最新更新