【发布时间】:2017-02-20 02:01:34
【问题描述】:
我对 Linux 开发比较陌生,使用 Windows 已经有一段时间了。无论如何,我正在 Windows 和 Linux 上使用 g++ 编译 C++ 游戏(在需要时使用 mingw32),并且正在链接 SDL2 和 SDL2_mixer。在 Windows 上,只需将 DLL 文件与可执行文件放在同一个文件夹中,一切都会运行良好。然而,在 Linux 上,虽然代码编译得很好,甚至没有一个警告,但我在运行时得到了这个:
./nKaruga: error while loading shared libraries: libSDL2_mixer-2.0.so.0: cannot open shared object file: No such file or directory
虽然说共享库在同一个文件夹中。我在Stack Overflow上查了几个类似的案例,都涉及到LD_LIBRARY_PATH的使用,试了没用。
% LD_LIBRARY_PATH=pwd
% export LD_LIBRARY_PATH
% ./nKaruga
./nKaruga: error while loading shared libraries: libSDL2_mixer-2.0.so.0: cannot open shared object file: No such file or directory
我想在不一定具有安装依赖项的管理员权限的系统上分发此程序,因此我将 SO 与可执行文件放在同一文件夹中。
提前致谢!
【问题讨论】:
-
pwd应该是`pwd`。 -
下一次 - "echo $LD_LIBRARY_PATH" 是你的调试行
标签: c++ linux bash g++ shared-libraries