我正在尝试编译此代码:
#include "SDL/SDL.h"
int main(void) {
SDL_Surface *Hello = NULL;
SDL_Surface *Screen = NULL;
SDL_Init( SDL_INIT_EVERYTHING );
return 0;
}
但是编译器恰好这么说:
对 SDL_Init 的未定义引用
我不知道为什么会发生这种情况。我正在使用 Debian Mint 和 Code::Blocks。你能帮我吗?
您的链接线路上似乎没有
-lSDL
。
sdl-config
返回 SDL 安装的编译和链接标志。
假设程序是
sdl.cpp
g++ -o sdl `sdl-config --cflags` sdl.cpp `sdl-config --libs`
应该给你正确的标志。
转到项目,然后构建选项并选择您的项目名称。
现在转到
linker
设置并在 Other Linker options
文本框中键入以下行:
-lSDLmain
-lSDL
SDL
还需要主函数中的命令行参数,因此您应该更改
int main(void)
到
int main(int argc, char **argv)
现在编译你的项目,它应该可以工作。