我尝试使用SDL编译代码,我无法在此处发布大部分代码,但我可以尽力回答有关它的问题。编译视图代码并尝试链接SDL库时会出现此问题。
g++ -o test test.c -lSDL2main -lSDL2
给我一个错误/usr/bin/ld: cannot find -lSDL2main
我知道我的SDL安装没问题,因为如果我省略了SDL2main的链接,它编译得很好并运行良好。问题是还有其他代码需要SDL2main。我已经通过我的文件系统,我无法找到它,而且我在网上搜索得非常详尽。我只是希望有人可以帮助我解决依赖关系或修复我的sdl安装,如果它已经坏了。
答案 0 :(得分:0)
如果您正在使用某些发行版,可能还有一些搜索文件的工具,即使是未安装的软件包也是如此。
例如(我使用Debian / unstable)apt-file search SDL2main
libsdl2-dev: /usr/lib/i386-linux-gnu/libSDL2main.a
libsdl2-2.0-0:i386 2.0.2+dfsg1-4
libsdl2-dev 2.0.2+dfsg1-4
一旦您确认lib存在但如果它没有链接,那么仍然需要检查并尝试
检查lib是否安装在其中一个搜索路径中(参见How to print the ld(linker) search path)
或明确路径
g++ -o test test.c -L/usr/lib/i386-linux-gnu -lSDL2main -lSDL2
作为具有一些gcc/g++/ld
版本的静态库,您可能需要将存档链接为对象,而不需要-l
g++ -o test test.c /usr/lib/i386-linux-gnu/libSDL2main.a -lSDL2