标签:
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码 就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
使用的开发工具是vs2013。
下载得到SDL2-devel-2.0.3-VC.zip,解压:
在include下是SDL的头文件,在lib/x86下是用于32位平台的SDL动态库和静态库,这里我们只使用x86平台的库文件。
打开VC++
文件->新建->项目->Win32控制台应用程序
头文件(*.h)拷贝至项目文件夹的include子文件夹下
导入库文件(*.lib)拷贝至项目文件夹的lib子文件夹下,如下图:
动态库文件(*.dll)拷贝至C:\Windows\system下
打开属性面板
解决方案资源管理器->右键单击项目->属性
配置属性->C/C++->常规->附加包含目录,输入“include”(刚才拷贝文件的目录)
配置属性->链接器->常规->附加库目录,输入“lib” (刚才拷贝文件的目录)
配置属性->链接器->输入->附加依赖项,输入“SDL2.lib; SDL2main.lib; SDL2test.lib”(导入库的文件名)
动态库不用配置
在工程中创建一个包含main()函数的C/C++文件(如果已经有了可以跳过这一步),后续步骤在该文件中编写源代码。
如果是C语言中使用SDL,则直接使用下面代码
#include "SDL.h"
如果是C++语言中使用SDL,则使用下面代码
extern "C"
{
#include "SDL2/SDL.h"
}
例如下面代码初始化了SDL
int main(int argc, char* argv[]){
if(SDL_Init(SDL_INIT_VIDEO)) {
printf( "Could not initialize SDL - %s\n", SDL_GetError());
} else {
printf("Success init SDL");
}
return 0;
}
运行结果:
解压,执行如下命令
tar -xf SDL2-2.0.3.tar.gz
mkdir build
cd build
../SDL2-2.0.3/configure
make
sudo make install
默认会把编译生成的头文件、静态库和动态库存放到/usr/local/include/和/usr/local/lib下,也可以在configure的时候将--prefix设置为/usr/。
如果安装到了/usr/local下,需要设置LD_LIBRARY_PATH,可以将下面的命令添加到.bashrc中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Makefile
INC=-I/usr/local/include
LIB_DIR=-L/usr/local/lib
LIB=-lSDL2
demo:demo.o
gcc $^ -o $@ $(INC) $(LIB_DIR) $(LIB)
demo.o:demo.c
clean:
rm *.o demo
demo.c
#include <stdio.h>
#include <SDL2/SDL.h>
int main(int argc, const char *argv[])
{
if (SDL_Init(SDL_INIT_VIDEO)) {
printf("Could not initialize SDL - %s\n", SDL_GetError());
}
else{
printf("Success init SDL\n");
}
return 0;
}
执行:
root@ubuntu:~/study/video/sdl/demo# ./demo
Success init SDL
完。
标签:
原文地址:http://www.cnblogs.com/pengdonglin137/p/5094883.html