程序无法加载共享库 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/
目录中找到它的共享库。
首先,这是错误消息:
./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/
目录中找到它的共享库。