Linux下安裝、編譯SDL


 

  要搞圖形界面,SDL是比較好上手的一個庫。今天試着在centos下搞了一個SDL的程序。下面是配置的步驟:

  首先yum search SDL,會出現SDL相關的軟件包。不過我這里只有SDL1的,沒有2的。然后看對了后,install一下。要注意,一定要看清楚是32位的還是64位的,下載和自己系統對應的版本,否則編譯會出錯。我這里是64位的系統,因此下載64位的版本。

  

yum install SDL-devel.x86_64 SDL_mixer-devel.x86_64 SDL_ttf-devel.x86_64 SDL_image-devel.x86_64 SDL_net-devel.x86_64

 

  我把常用的包都安裝上了,如果你有其他需要可以自己調整。

  安裝完后,就可以正式寫代碼了。

 

#include "SDL.h"
#include "SDL_image.h"
#include "SDL_mixer.h"
#include "SDL_ttf.h"
#include "SDL_net.h"

int main()
{
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Quit();
    return 0;
}

  保存代碼為test1.cpp

  編譯的時候,需要額外添加sdl的頭文件路徑、鏈接庫路徑和鏈接庫。我的系統中,頭文件在 /usr/include/SDL 下,而鏈接庫在 /usr/lib下。

  編譯命令:

  

gcc test1.cpp -I/usr/include/SDL -L/usr/lib -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lSDL_net -lstdc++ -otest1.a

 

  這里要注意,-lstdc++ 這個庫不能省,否則會報錯。

  如果沒有任何提示,那么恭喜,編譯成功啦。

  還要提示一點,SDL程序的運行時需要相關庫的支持的。不過還有一個static的SDL編譯庫,留給讀者自己探索。

  最后總結幾個常見的問題:

  如果gcc報告一大堆undefined,比如什么 Uint8 不能命名,類型未定義等等,看看是不是忘記加 -lstdc++

  如果報告 libSDL.so 不完整或打不開,看看是不是選擇了系統對應的64或32位版本。如果和系統不相同,那么編譯是不能通過的。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM