zoukankan      html  css  js  c++  java
  • OpenGL Linux 安装与配置 一键编译+运行

    (1) 安装freeglut:

     sudo apt-get install freeglut3 freeglut3-dev


    (2) 写好你的代码,这里给出一份简单的实现抛物线的代码:

    #include <GL/glut.h>
    
    void myDisplay(void) {
        float x, y;
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POINTS);
        
        for ( x = 0.1; x < 1; x += 0.01 ) { 
            y = x * x;
            glVertex2f(x, y); 
        }   
    
        glEnd();
        glFlush();
    }
    
    int main(int argc, char *argv[]) {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
        glutInitWindowPosition(100, 100);
        glutInitWindowSize(400, 400);
        glutCreateWindow("the first OpenGL");
        glutDisplayFunc(&myDisplay);
        glutMainLoop();
        return 0;
    }   
    


    (3) 开始编译吧,这是关键的一步,因为你要链接到glut的库,更重要的是要注意链接的顺序:

    gcc -Wall -g your_code.c -lGL -lGLU -lglut -o haha

    接下来运行haha就可以看到画好的抛物线啦 (输入 ./haha)


    最后,给大家介绍一下vim的配置技巧.大家是不是觉得每次编译都要输入这么多很麻烦?

    我把vim配成按F12就可以编译加执行了,是不是很方便?

    打开你的vimrc文件,加入以下内容:

     

    autocmd FileType c,cpp :map <silent> <F12> :call Compile_for_glut( )<cr>
    
    function! Compile_for_glut()
        exec "w"
        exec "!gcc -Wall -g '%' -lGL -lGLU -lglut -o cTEMP"
        exec "!./cTEMP"
    endfunction


    保存后就可以啦~大家可以举一反三, VIM可是最强大的编辑器了,我的最爱^_^.

  • 相关阅读:
    ue父子组件的数据传递示例
    vue.js 组件之间传递数据
    Vue2.0子同级组件之间数据交互
    assets 和static的区别
    Vue中src属性绑定的问题
    css3设置背景图片的大小
    如何在HTML中插入空格
    css背景图片的设置
    vue动态组件 互相之间传输数据 和指令的定义
    webservice的优缺点
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3002729.html
Copyright © 2011-2022 走看看