SDL2.0 學習筆記-1 windows下的第一個測試程序
SDL全稱是Simple DirectMedia Layer,是一個開源的、跨平臺(win32,linux,mac)的多媒體開發c語言庫。
第一步,下載源文件
首先去這個頁面http://www.libsdl.org/tmp/download-2.0.php下載相關資源文件,直接下載SDL2-2.0.0.zip 來自己編譯,或者按自己的系統下載相關的開發資源(bin和include)。解壓資源包后,內容如下:
include目錄下頭文件,src目錄下是SDL的源c文件。
為了方便地在VS下編寫SDL程序,可以將include里的內容,放到的開發環境的include目錄下,如在C:\Program Files\Microsoft Visual Studio 11.0\VC\include下新建sdl目錄放置所有sdl頭文件。
(也可以使用junction link,使用mklink /J "C:\Program Files\Microsoft Visual Studio 11.0\VC\include\sdl" ./sdl2.0.../include 命令來完成)
第二步,編譯SDL(要是下載了相關的開發資源的話,可以直接跳過這一步)
進入VisualC目錄下,可以看到vs的sln文件,支持vs2008,vs2010,vs2012,按自己的vs版本選擇相關的solution打開,編譯,分別可以得到SDL2.lib、SDL2main.lib、SDL2test.lib 、 SDL2.dll文件。
SDL2.lib是核心的靜態鏈接庫文件,SDL2main.lib定義了SDL在windows平臺下入口函數(這點后面詳解),SDLtest.lib用于測試(屬于sdltest庫,可以用它來測試你當前系統或平臺對SDL功能的支持程度)。
第三步,編寫第一個sdl程序
創建工程,新建c或cpp源文件。開始簡的coding來測試一下:

1 #include <sdl/SDL.h> 2 #include <iostream> 3 4 // 由于SDL內部重定義了main, main函數一定得是這個形式,具體為何,后面詳細說明 5 int main(int argc, char * argv[]) 6 { 7 // 初始化SDL 8 if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)== -1)) 9 { 10 // 初始化失敗,打出錯誤,注意SDL_GetError返回一個字符串,可讀性很好,是不是? 11 printf("Could not initialize SDL: %s.\n", SDL_GetError()); 12 } 13 else 14 { 15 printf("SDL initialize ok!"); 16 } 17 // 結束SDL 18 SDL_Quit(); 19 getchar(); 20 return 0; 21 }

這里需要說明的幾點:
1、入口函數不能寫成main(),必須有參數,因為SDL將內部已經實現了入口函數,這里的main其實是SDL_main。
2、如果是在windows環境下使用vs,注意測試工程需要作以下設置:
(1)項目屬性-配置屬性-鏈接器-系統:子系統(選控制臺 (/SUBSYSTEM:CONSOLE)或 窗口 (/SUBSYSTEM:WINDOWS))。
(2)項目屬性-配置屬性-c/c++:附加包含目錄:選擇SDL的include目錄。
(3)將SDL2.lib、SDL2main.lib添加到項目中。加到 項目屬性-配置屬性-鏈接器-輸入:附加依賴項,或者直接以文件形式添加。
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成