Ubuntu14.04下C++開發SDL2應用
來源:程序員人生 發布時間:2015-01-21 09:08:11 閱讀次數:5284次
1 下載與安裝
到http://www.libsdl.org/下載http://www.libsdl.org/release/SDL2⑵.0.3.zip源碼
解壓后
./configure
make
sudo make install
檢查
頭文件:/usr/local/include/SDL2
庫位置:/usr/local/lib
2 建立測試程序:
#include <iostream>
#include <SDL.h>
#define WIDTH 640
#define HEIGHT 480
#define BPP 4
#define DEPTH 32
using namespace std;
int main(int argc, char* argv[])
{
SDL_Surface *screen;
SDL_Event event;
int keypress = 0;
int h = 0;
if (SDL_Init(SDL_INIT_EVERYTHING) == ⑴ ) {
cout << "error: " << SDL_GetError() << endl;
return 1;
}
SDL_Window* window = SDL_CreateWindow("hello", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
if (window == NULL){
cout << "Error: " << SDL_GetError() << endl;
return 1;
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, ⑴, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (renderer == NULL){
cout << "Error: " << SDL_GetError() << endl;
return 1;
}
SDL_Surface* surface = SDL_LoadBMP("bk.bmp");
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, surface);
SDL_FreeSurface(surface);
SDL_RenderClear(renderer); //清除屏幕
SDL_RenderCopy(renderer, texture, 0, 0); //把texture畫到renderer上
SDL_RenderPresent(renderer);
while(!keypress)
{
//DrawScreen(screen, h++);
while(SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:
keypress = 1;
break;
case SDL_KEYDOWN:
keypress = 1;
break;
}
}
}
SDL_Quit();
return 0;
}
3 編寫編譯命令build文件,內容以下:
g++ sdl_app1.cpp -I/usr/local/include/SDL2 -L/usr/local/lib -lSDL2 -lpthread
設置該文件的履行權限:
chmod +x build
運行編譯命令:
./build
產生履行文件a.out
4 運行程序
./a.out
若出現找不到.so.0...,即找不到動態鏈接庫的情況
運行命令:
sudo vim /etc/ld.so.conf #修改系統同享庫搜索路徑
在第1行增加
include /usr/local/lib
再運行命令:
sudo ldconfig
運行./a.out
結果運行正常
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈