Windows与Linux下 SDL2的第一个窗口程序

Windows效果和Linux效果如下:

下面是代码:

复制代码
#include <stdio.h>
#include "SDL.h"
 
int main(int argc, char* argv[]) 
{ 

    // 初始化SDL视频子系统
    if (SDL_Init(SDL_INIT_VIDEO)  != 0)
    {
        // 如果初始化失败,打印错误信息
        printf("Error: %s\n", SDL_GetError()); 
        return -1;  
    }

    // 创建窗口
    SDL_Window *window = SDL_CreateWindow("My", 
    SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,   640, 480, SDL_WINDOW_SHOWN);

    if (!window)
    {
        // 如果窗口创建失败,打印错误信息
        printf("Error: %s\n", SDL_GetError()); 
        return -1; 
   }

     // 创建渲染器
    SDL_Renderer *  renderer = SDL_CreateRenderer(window, -1, 0);
    if (renderer == NULL) {
        // 如果渲染器创建失败,记录错误信息
        SDL_LogError(SDL_LOG_CATEGORY_RENDER, "Couldn't create renderer: %s", SDL_GetError()); 
        return -1; 
    }

    // 设置渲染器的绘制颜色为红色
    SDL_SetRenderDrawColor( renderer, 0, 255, 0, 255 );

    // 清除渲染器的绘制缓冲区
    SDL_RenderClear( renderer );

    // 将当前渲染器的绘制结果呈现到窗口上
    SDL_RenderPresent( renderer );

    // 暂停10秒,以便用户可以看到窗口
    SDL_Delay(10000);
  
    // 销毁窗口并退出SDL子系统
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0; // 主函数正常结束
}

Windows下下载dll库就行了

Linux下需要安装

复制代码
sudo apt install  libsdl2-dev
相关推荐
草莓熊Lotso4 分钟前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
把我格子衫拿来7 小时前
VTK 9.5 与 Qt 6 联合开发:从嵌入三维窗口到可维护的桌面架构
c++·python·qt·vtk·三维可视化
无忧.芙桃7 小时前
C++语言原理与实践(十六):多态机制讲解
开发语言·c++·多态
泡海椒8 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
wuminyu9 小时前
JMM学习总结:深入理解happens-before关系
java·linux·c语言·jvm·c++
xxwl5859 小时前
区域赛分类题解
c++·笔记·学习·算法
青少儿编程课堂10 小时前
蓝桥杯+全国青少年信息素养大赛+电子学会PythonC/C++考级:最长公共子序列LCS解析
c++·python·算法·bfs·信息学竞赛
钱栈up11 小时前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
代钦塔拉11 小时前
【C++/Qt 进阶】设计模式系列(2):工厂模式——从游戏角色到披萨店
c++·算法·设计模式
xiao77mwq11 小时前
Wireshark 在 Windows 上没法按进程抓包,我补了一条路
windows