程序无法加载共享库 GCC

Program cannot load shared library 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 添加到 link 行就无需处理环境问题。

更好的是:-rpath='$ORIGIN' 允许您将整个安装目录移动到不同的地方,程序仍然会在它自己的 bin/ 目录中找到它的共享库。