Linux(F7)下使用SDL开发

F7的软件包里边有SDL,如果你选择了一些基本的开发包,那么应该包含了SDL,就不需要了再另外安装了。可以使用下面的命令来查看SDL的安装情况:

rpm -qa | grep SDL

如果没有找到相应的RPM包,那么可以去这里下载。

SDL只包含了最基本的东西,更多的扩展可以在这里下载.其中常用的有SDL_image,SDL_ttf,SDL_mixer等,安装的时候需要注意带有devel的是开发库,而不带的是运行库,一般两个都需要安装。

安装好SDL以后就可以开始写第一个程序了,需要注意的是编译程序时应该加上SDL的链接,如:

gcc -lSDL -o hello hello.c

如果你还使用了其它库,那么也要加上相应库的连接:

gcc-lSDL -lSDL_image -o hello hello.c

下面就可以使用运行SDL程序了,在X下面应该不会有什么问题的,不过如果想在终端下运行可能就会出现问题了。一个先决条件是启动Linux时要在grub中加参数vga=0×314(后面这个根据你的需要可以调整),加这个参数后Linux终端就开始使用FrameBuffer了。

下面是不同分辨率、位数所对应的16进制数:

|640×480 800×600 1024×768 1280×1024
—-+——————————————
256 | 0×301 0×303 0×305 0×307
32k | 0×310 0×313 0×316 0×319
64k | 0×311 0×314 0×317 0x31A
16M| 0×312 0×315 0×318 0x31B

这样在终端下使用SDL的条件已经具备了,开始运行编译好的SDL程序(你可以在SDL官方网站上下载一些不错的例子),不过你很可能会得到下面的错误信息:

Enable to open mouse.

然而我在单用户模式下运行程序却没有这个错误信息。

google了一下,查到应该是鼠标设备文件在终端下没有权限被读取,这下明白了为什么在单用户模式下程序可以正常运行,单用户模式下本来登录的就是root,所以不会存在权限的问题。

于是在/dev/目录下找到了鼠标设置,我的F7中有下面三个文件:

crw—— 1 root root 13, 63 08-31 23:44 mice
cr——– 1 root root 13, 32 08-31 23:44 mouse0
cr——– 1 root root 13, 33 08-31 23:44 mouse1

经过我测试表明需要对mice这个设备文件权限进行修改:

chmod 0644 mice

把这个设备的的读权限给其它用户了,这样普通用户也可以在终端下正常运行SDL程序了。

OK,使用SDL开发的准备工作已经全部完毕!SDL的开发之旅就要开始了。

Update1:使用chmod改变mice的权限虽然可以暂时解决问题,不过重起电脑后,mice的权限又恢复到了默认值,貌似没有好的解决方案。

This entry was posted in SDL, 编程相关. Bookmark the permalink.

8 Responses to Linux(F7)下使用SDL开发

  1. Amankwah says:

    娃又开始弄SDL了?

  2. luguo says:

    SDL是个不错的库,以前小看过一点点~~

  3. luguo says:

    也发到西邮Linux上给大家看一下啊~~

  4. cocobear says:

    已经转过去了。

    不知道ubuntu安装好后SDL有没有包含进去?

    娃又开始弄SDL了?

    怎么是“又”!

  5. cnenc says:

    居然没有发现,又是一个Linux爱好者。。
    交个朋友吧。

  6. nothing says:

    呵呵,又是一个“又”

    OK
    你的网站似乎有些问题

  7. cnenc says:

    不是有些问题。。。是问题多多。。。
    我这段时间都没有空。。。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>