Cro*_*oCo 2 c c++ linux shared-libraries sdl-2
我正在尝试从源代码构建SDL库 .我已经下载了压缩文件(即SDL2-2.0.3.tar.gz)并将其解压缩.我不想安装文件/usr/local.根据这个链接,我需要改变configure
最后一个命令说"sudo",所以我们可以将它写入/ usr/local(默认情况下).您可以使用configure脚本的--prefix选项将其更改为其他位置.事实上,有很多很好的选项可供配置使用!请务必查看其--help选项以获取详细信息.
这就是我所做的.
mkdir build
cd build
../configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
在install文件夹中,我已经创建的下列文件
share
lib
include
bin
Run Code Online (Sandbox Code Playgroud)
现在我想运行测试文件.我选择了这个testatomic.c,这是命令行
gcc testatomic.c -o test -I/home/xxxx/Desktop/SDL2-2.0.3/install/include/SDL2 -L/home/xxxx/Desktop/SDL2-2.0.3/install/lib -lSDL2 -lSDL2main
我收到这个错误
error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory
在lib,这些是文件

共享对象文件在哪里?
运行生成的程序时出错,因为系统的动态链接器找不到所需的库.方案要求libSDL2-2.0.so.0,链接器查找它在系统定义的目录(/lib,/usr/lib,..., -定义/etc/ld.so.conf),但仍然没有找到-因此错误.
要通知链接器您希望它在哪里查找库,您可以定义LD_LIBRARY_PATH环境变量,例如在您的情况下:
export LD_LIBRARY_PATH="$HOME/Desktop/SDL2-2.0.3/install/lib"
./test
Run Code Online (Sandbox Code Playgroud)
其他方法是在标准位置安装库,在.bashrc(或您使用的任何shell)中定义LD_LIBRARY_PATH,或使用rpath,例如-Wl,-rpath=$HOME/Desktop/SDL2-2.0.3/install/lib在编译行末尾添加.
| 归档时间: |
|
| 查看次数: |
14210 次 |
| 最近记录: |