Ubuntu 18.04 Vscode配置OpenGL 记录

本文档详细介绍了如何在Ubuntu系统中通过apt安装OpenGL、freeglut、GLEW等开发库,并利用VSCode进行配置,包括创建launch.json和tasks.json文件,实现C++ OpenGL程序的编译与调试。通过提供的代码示例,展示了生成3D茶壶模型的基本步骤,帮助开发者建立完整的OpenGL开发与调试环境。
摘要由CSDN通过智能技术生成

首先配置OpenGL的开发环境,使用apt安装OpenGL及相关的开发包。

安装

  • 在终端中,配置步骤如下:
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
  • 在选定的文件夹中新建一个main.cpp ,可在文件夹中右键打开终端:
touch main.cpp
  • main.cpp中撰写一段测试程序:
#include <GL/glut.h>

//初始化
void init(void){
    GLfloat mat_specular [ ] = { 1.0, 1.0, 1.0, 1.0 };
    GLfloat mat_shininess [ ] = { 50.0 };
    GLfloat light_position [ ] = { 1.0, 1.0, 1.0, 0.0 };
    glClearColor(0.3, 0.2, 0.2, 0.1);
    glShadeModel ( GL_SMOOTH );
    
    glMatrixMode(GL_PROJECTION);
    glOrtho(-5, 5, -5, 5, 5, 15);
    glMatrixMode(GL_MODELVIEW);
    gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);

    glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialfv ( GL_FRONT, GL_SHININESS, mat_shininess);
    glLightfv ( GL_LIGHT0, GL_POSITION, light_position);
    
    glEnable (GL_LIGHTING);
    glEnable (GL_LIGHT0);
    glEnable (GL_DEPTH_TEST);
}
//茶壶绘图函数
void display(void){
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(0.6, 1.0, 0.7);
    glutWireTeapot(3);
    glFlush();
}
int main(int argc, char* argv[]){
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowPosition(800, 150);
    glutInitWindowSize(600, 400);
    glutCreateWindow("OpenGL 3D View");
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}



  • 在相应文件夹中打开终端,编译运行:
g++ main.cpp -o main -lGL -lGLU -lglut
./main

VScode 配置文件

项目文件夹下新建-vscode文件夹,新建launch-json、task-json文件

F5 选择C++(GDB/LLDB) 调出launch.json
launch.json文件中配置:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",                                 //配置名称,会在启动配置的下拉菜单中显示
            "type": "cppdbg",                                       //配置类型,只能为cppdbg
            "request": "launch",                                    //请求类型,可以为launch或attach
            "program": "${workspaceFolder}/main",             //将要调试的程序的路径
            "args": [],                                             //调试时传递给程序的命令行参数
            "stopAtEntry": false,                                   //设为true程序会暂停在入口处
            "cwd": "${workspaceFolder}",                            //调试程序时的工作目录
            "environment": [],                                      //环境变量
            "externalConsole": true,                                //调试时是否显示控制台窗口
            "MIMode": "gdb",                                        //指定连接的调试器,可以为gdb或lldb
            "miDebuggerPath": "/usr/bin/gdb",                       //gdb路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"                                //调试开始前执行的任务,一般为编译程序
        }
    ]
}

在生成 tasks.json 文件时,可ctrl + shift + B ,选择配置生成任务 ,再者选择使用模板创建tasks.json文件,最后选择Others.

tasks.json 编辑为:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build", 
            "type": "shell",
            "command": "g++",
            "args": [
                "main.cpp","-o","main","-lGL","-lGLU","-lglut" 
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

需要加上 -lGL -lGLU -lglut 后缀。
然后ctrl + shift + B,生成可执行文件main,在VScode中ctrl + ~调用终端,或者是所在文件夹中调用终端,输入:

./main

即可生成对应的茶壶3D模型视图:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值