qt sdl linux,Mac QT 搭建SDL程序开发环境
Mac QT 搭建SDL程序开发环境简介直接翻译了一下官网介绍:简单的DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低层访问。 它被视频播放软件,模拟器和流行游戏使用,包括Valve屡获殊荣的目录和许多Humble Bundle游戏。SDL支持Windows,Mac OS X,Linux,iOS和Android
Mac QT 搭建SDL程序开发环境
简介
直接翻译了一下官网介绍:
简单的DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低层访问。 它被视频播放软件,模拟器和流行游戏使用,包括Valve屡获殊荣的目录和许多Humble Bundle游戏。
SDL支持Windows,Mac OS X,Linux,iOS和Android。 可以在源代码中找到对其他平台的支持。
SDL是用C语言编写的,与C ++本身一起工作,并且有几种其他语言可用的绑定,包括C#和Python。
SDL 2.0在zlib许可下分发。 此许可证允许您在任何软件中自由使用SDL。
SDL开发包位置
用命令:brew info sdl2
brew info sdl2
sdl2: stable 2.0.14 (bottled), HEAD
Low-level access to audio, keyboard, mouse, joystick, and graphics
https://www.libsdl.org/
/usr/local/Cellar/sdl2/2.0.14_1 (91 files, 5MB) *
Poured from bottle on 2020-12-30 at 21:07:39
From: https://mirrors.ustc.edu.cn/homebrew-core.git/Formula/sdl2.rb
License: Zlib
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 88,856 (30 days), 331,316 (90 days), 1,027,233 (365 days)
install-on-request: 8,671 (30 days), 32,802 (90 days), 106,951 (365 days)
build-error: 0 (30 days)
可以看到我的SDL开发包在:/usr/local/Cellar/sdl2/2.0.14_1目录下。
如果没有安装的同学,可以敲命令:brew install sdl2安装。
QT 创建第一个SDL程序
QT Create创建工程

QT Create
01-sdl-basic.pro
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.c
# 设置头文件路径
INCLUDEPATH += /usr/local/Cellar/sdl2/2.0.14_1/include/
# 设置库文件路径
LIBS += -L /usr/local/Cellar/sdl2/2.0.14_1/lib -lSDL2

sdl-basic.pro
INCLUDEPATH LIBS 中包含的SDL2是SDL的共享库,在/usr/local/Cellar/sdl2/2.0.14_1/lib/目录下。
main.c文件是这样的:
#include
#include "SDL2/SDL.h"
const int WIDTH = 400, HEIGHT = 400; // SDL窗口的宽和高
int main()
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) { // 初始化SDL
//cout << "SDL could not initialized with error: " << SDL_GetError() << endl;
}
SDL_Window *window = SDL_CreateWindow("Hello SDL world!", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WIDTH,
HEIGHT, SDL_WINDOW_ALLOW_HIGHDPI); // 创建SDL窗口
if (NULL == window) {
//cout << "SDL could not create window with error: " << SDL_GetError() << endl;
}
SDL_Event windowEvent; // SDL窗口事件
while (1) {
if (SDL_PollEvent(&windowEvent)) { // 对当前待处理事件进行轮询。
if (SDL_QUIT == windowEvent.type) { // 如果事件为推出SDL,结束循环。
printf ("SDL quit!!") ;
break;
}
}
}
SDL_DestroyWindow(window); // 推出SDL窗体
SDL_Quit(); // SDL推出
return 0;
}
好了就是这么简单,运行看一下效果:

image-20210318214439293
更多推荐




所有评论(0)