Ubuntu14.04下C++开发SDL2应用

326 篇文章 2 订阅
183 篇文章 6 订阅

1 下载与安装

到http://www.libsdl.org/下载http://www.libsdl.org/release/SDL2-2.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) == -1 ) {
    	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, -1, 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  #修改系统共享库搜索路径

在第一行增加

include /usr/local/lib

再运行命令:

sudo ldconfig 

运行./a.out

结果运行正常





  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值