要搞图形界面,SDL是比较好上手的一个库。今天试着在centos下搞了一个SDL的程序。下面是配置的步骤:

首先yum search SDL,会出现SDL相关的软件包。不过我这里只有SDL1的,没有2的。然后看对了后,install一下。要注意,一定要看清楚是32位的还是64位的,下载和自己系统对应的版本,否则编译会出错。我这里是64位的系统,因此下载64位的版本。

yum install SDL-devel.x86_64 SDL_mixer-devel.x86_64 SDL_ttf-devel.x86_64 SDL_image-devel.x86_64 SDL_net-devel.x86_64

我把常用的包都安装上了,如果你有其他需要可以自己调整。

安装完后,就可以正式写代码了。

#include "SDL.h"#include"SDL_image.h"#include"SDL_mixer.h"#include"SDL_ttf.h"#include"SDL_net.h"

intmain()

{

SDL_Init(SDL_INIT_EVERYTHING);

SDL_Quit();return 0;

}

保存代码为test1.cpp

编译的时候,需要额外添加sdl的头文件路径、链接库路径和链接库。我的系统中,头文件在 /usr/include/SDL 下,而链接库在 /usr/lib下。

编译命令:

gcc test1.cpp -I/usr/include/SDL -L/usr/lib -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lSDL_net -lstdc++ -otest1.a

这里要注意,-lstdc++ 这个库不能省,否则会报错。

如果没有任何提示,那么恭喜,编译成功啦。

还要提示一点,SDL程序的运行时需要相关库的支持的。不过还有一个static的SDL编译库,留给读者自己探索。

最后总结几个常见的问题:

如果gcc报告一大堆undefined,比如什么 Uint8 不能命名,类型未定义等等,看看是不是忘记加 -lstdc++

如果报告 libSDL.so 不完整或打不开,看看是不是选择了系统对应的64或32位版本。如果和系统不相同,那么编译是不能通过的。

linux上编译sdl,Linux下安装、编译SDL相关推荐

  1. 怎么在linux上添加网络打印机,Ubuntu下安装安装hp网络打印机图解

    在Ubuntu上安装打印机并不像想象中那样麻烦.你可以从"系统->系统管理->打印"菜单调出打印机设置. 首先你可以安装一个pdf虚拟打印机,就是将打印内容生成一个pd ...

  2. FFmpeg学习之路:Linux下安装编译

    FFmpeg学习之路:Linux下安装编译 文章目录 FFmpeg学习之路:Linux下安装编译 前言 一.下载FFmpeg 二.准备工作 1.安装yasm的汇编编译器 2.安装SDL2 三.编译安装 ...

  3. Q106:Linux系统下安装编译PBRT-V3

    106.0 引入 本人之前尝试过在windows系统中编译pbrt-v3,但是出现了很多错误.pbrt-v3的源代码中部分Linux的函数没有用宏包好,而是直接使用,所以在windows环境下就报错了 ...

  4. Q106:Mac系统下安装编译PBRT-V3

    Mac和Linux比较类似,所以,"Mac系统下安装编译PBRT-V3"和"Linux系统下安装编译PBRT-V3"是非常相似的. 基于"Q106:L ...

  5. linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置

    在Ubuntu上安装了Oracle 8 jdk,在jre/lib中它具有各种fontProperties文件和一个包含字体的字体目录.但是,当安装OpenJdk 8时,jre/lib中的字体文件上没有 ...

  6. linux texmaker编译,在Ubuntu下安装和编译LaTex

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? LaTex简介 1.LaTeX 是由美国计算机学家Lamport博士于1985年开发成功的. 2.它是当今世界上最流行和 ...

  7. linux 服务器 安装网卡驱动,linux下安装编译网卡驱动的方法

    安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...

  8. linux下安装编译网卡驱动

    安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...

  9. linux 网卡驱动编译,在linux系统下安装编译网卡驱动的方法

    安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...

  10. linux下运行htk,Linux下安装编译并且测试HTK语音识别库

    决定写一个linux下的HTK的安装和测试,如果有人想看windows下的,可以看我之前的那篇文章 http://www.linuxidc.com/Linux/2013-03/80801.htm. 首 ...

最新文章

  1. Python常见数据框操作①
  2. 双轴机械臂建模分析数据
  3. 是否可以在Gradle中声明一个可用于Java的变量?
  4. python封装类在当前文件中使用_name_下调用不了_python提示这个是什么原因!
  5. 基于pygame的射击小游戏制作(四)击杀外星人
  6. stm32 USB增加端点总结
  7. 空格 过滤多个_CAD选择过滤器的运算符如何使用?
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理
  9. python提供的三种基本数据类型是()_python基础之基本数据类型
  10. 2017.10.8 球形空间产生器sphere 思考记录
  11. php dns失败,dns错误是什么意思
  12. iVMS-8700综合安防管理平台第三方开发
  13. 项目经理需要具备四种基本素质及八大管理技能
  14. 如何成为一名数据分析师
  15. 电商分析需要重点关注的核心指标
  16. VUE提示Gradient has outdated direction syntax
  17. 无聊科技正经事周刊(第3期):美团的推荐算法,是在玩火吗?
  18. 如何破解百度文库的防复制功能
  19. 异形隔离java剧情_异形隔离攻略 系统上手教程 全剧情流程图文攻略(20)
  20. linux 用户相关操作

热门文章

  1. 大数据的价值体现有哪些
  2. 数据分析在内容运营中的作用
  3. 命令行打印二维码-pyqrcode
  4. 关于C++的建议,仅仅为了规范代码(二)
  5. [运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
  6. 完成一个Vue3项目的过程
  7. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,
  8. html 图片 把绝对路径改为相对路径,html中想把图片绝对路径 改成相对路径怎么操作?...
  9. qml 函数使用经验总结1(image中调用函数)
  10. python socket 接口