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
相关推荐
还债大湿兄1 小时前
《C++内存泄漏8大战场:Qt/MFC实战详解 + 面试高频陷阱破解》
c++·qt·mfc
珊瑚里的鱼4 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法
AI+程序员在路上4 小时前
QTextCodec的功能及其在Qt5及Qt6中的演变
开发语言·c++·qt
Risehuxyc5 小时前
C++卸载了会影响电脑正常使用吗?解析C++运行库的作用与卸载后果
开发语言·c++
liulilittle5 小时前
.NET ExpandoObject 技术原理解析
开发语言·网络·windows·c#·.net·net·动态编程
景彡先生7 小时前
C++编译期计算:常量表达式(constexpr)全解析
服务器·c++
tan77º8 小时前
【Linux网络编程】应用层自定义协议与序列化
linux·运维·服务器·网络·c++·tcp/ip
悠哉清闲9 小时前
Android Studio C++/JNI/Kotlin 示例 三
c++·kotlin·android studio
AI迅剑9 小时前
模块三:现代C++工程实践(4篇)第二篇《性能调优:Profile驱动优化与汇编级分析》
汇编·c++
byte轻骑兵10 小时前
【Bluedroid】蓝牙协议栈enable流程深度解析
android·c++·bluedroid