Lesson 0: 使用Linux命令行
在linux上编译项目,我们将使用简单的makefile,makefile文件将为我们设置好需要的库文件和链接。这个makefile文件假设你的SDL库文件安装在/usr/local/lib,头文件位于/usr/local/include。如果你要通过cmake来编译项目,这里是文件的安装目录,更多的细节在编译时可以通过这里找到。如果你是安装开发库是通过包管理软件或者你把库文件和头文件放置在其他的位置,你需要修改makefile中相应的文件的位置。你可以使用sdl2-config加上参数 --cflag 和 --libs 去查询是否安装SDL2开发库或者确定文件的位置。
如果你不是很熟悉Makefile的语法,你可以点击这里这个链接查看简单的makefile用法
Makefile文件内容
CXX = g++
# Update these paths to match your installation
# You may also need to update the linker option rpath, which sets where to look for
# the SDL2 libraries at runtime to match your install
SDL_LIB = -L/usr/local/lib -lSDL2 -Wl,-rpath=/usr/local/lib
SDL_INCLUDE = -I/usr/local/include
# You may need to change -std=c++11 to -std=c++0x if your compiler is a bit older
CXXFLAGS = -Wall -c -std=c++11 $(SDL_INCLUDE)
LDFLAGS = $(SDL_LIB)
EXE = SDL_Lesson0
all: $(EXE)
$(EXE): main.o
$(CXX) $< $(LDFLAGS) -o $@
main.o: main.cpp
$(CXX) $(CXXFLAGS) $< -o $@
clean:
rm *.o && rm $(EXE)
测试代码
下面的代码是一段简单的测试代码,用来检测SDL是否安装成功。程序先初始化了SDL video 子系统,接着检查是否有报错,然后退出程序。这个源文件名字应该为“main.cpp”,或者你可以修改makefile中对应的源代码文件名。
#include
#include
/*
* Lesson 0: Test to make sure SDL is setup properly
*/
int main(int, char**){
if (SDL_Init(SDL_INIT_VIDEO) != 0){
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Quit();
return 0;
}
如果你成功设置了环境变量,这个程序应该成功运行并且没有什么事件发生。如果有错误发生,请一步一步检查确定全部步骤正确。