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 
#include 
#include 

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

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

转载于:https://www.cnblogs.com/GyForever1004/p/8577633.html

你可能感兴趣的:(svgalib_1.4.3 移植)