找不到sdl2main

时间:2014-03-30 02:28:11

标签: c++ graphics g++

我尝试使用SDL编译代码,我无法在此处发布大部分代码,但我可以尽力回答有关它的问题。编译视图代码并尝试链接SDL库时会出现此问题。

g++ -o test test.c -lSDL2main -lSDL2

给我一​​个错误/usr/bin/ld: cannot find -lSDL2main

我知道我的SDL安装没问题,因为如果我省略了SDL2main的链接,它编译得很好并运行良好。问题是还有其他代码需要SDL2main。我已经通过我的文件系统,我无法找到它,而且我在网上搜索得非常详尽。我只是希望有人可以帮助我解决依赖关系或修复我的sdl安装,如果它已经坏了。

1 个答案:

答案 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