• svgalib_1.4.3 移植


    运行环境

    RedHat 6.3 Linux localhost 2.6.32-279.el6.i686
    

    需准备好的文件:

    libx86_1.1+ds1.orig.tar.gz
    libx86_1.1+ds1-6.diff.gz
    svgalib_1.4.3.orig.tar.gz
    svgalib_1.4.3-30.debian.tar.gz
    561491.patch
    

    库安装步骤

    #分别解压源码和补丁
    tar xzf svgalib_1.4.3.orig.tar.gz
    tar xzf svgalib_1.4.3-30.debian.tar.gz
    
    #打上补丁
    cd svgalib-1.4.3.orig/
    for file in ../debian/patches/*.patch; do patch -p1 < $file; done
    
    #svgalib 的编译需要 libx86 库
    #解压源码
    tar xzf libx86_1.1+ds1.orig.tar.gz 
    gunzip libx86_1.1+ds1-6.diff.gz
    
    #打上补丁
    cd libx86-1.1/
    patch -p1 < ../libx86_1.1+ds1-6.diff 
    
    make // 这时会出现错误,修改 lrmi.c,添加 561491.patch 内的宏
    make
    make install //libx86 编译并安装成功
    
    # 再回 svgalib-1.4.3.orig 目录执行安装命令就不会有错误了
    make install
    

    库安装成功后使用以下程序进行测试:

    #include <stdlib.h>
    #include <vga.h>
    #include <vgagl.h>
    
    int main(void)
    {
    	int x, y;
    	
    	vga_init();
    	vga_setmode(G320x200x256);
    	gl_setpalettecolor(4, 0xE7>>2, 0xDB>>2, 0xB5>>2);   /* 0xE7DBB5  */
    	vga_setcolor(4);
    
    	for (x = 0; x < 320; x++)
    		for (y = 0; y < 200; y++)
    			vga_drawpixel(x, y);
    
    	sleep(5);
    	vga_setmode(TEXT);
    
    	return EXIT_SUCCESS;
    }
    

    执行编译命令:

    gcc -o svgatest svgatest.c -lvga -lvgagl
    

    运行结果:

    正确的结果是 Teminal 呈现出类似“泛黄的纸”的颜色。

    可是我得到的结果却没有这么完美,当时一运行显示出下面的结果:

    mmap /dev/zero Permission denied
    

    傻了!经过百般检索终于找到了解决的办法

  • 相关阅读:
    Python中使用MongoEngine
    Python中MongoDB使用
    JAVA 日期相关API (JDK 8 新增)
    JAVA 日期相关API(JDK 8 之前)
    StringBuffer 和StringBuilder
    String 类型转换
    String类常用方法
    JAVA String类
    关于线程锁的释放和保留
    java线程同步--使用线程池
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8577633.html
Copyright © 2020-2023  润新知