目前新阶段学习的第一个项目,仅以此文记录我的学习过程。如果有错误的、不全面的地方,欢迎斧正!

下载软件部分还算简单,感觉顺序也应该不是关键。我安装的是visual studio 2019,OpenGL2以及qt5.14.2。

一、visual studio的安装

1.官网地址:

Visual Studio: IDE and Code Editor for Software Developers and Teams

随后找到“下载visual studio”并点击选择community版本(个人版)即可,三个版本中只有这个版本是免费的。

  1. 下载完成之后,我们要对VS进行一些配置,这里我就针对vs+opengl+qt的项目进行配置。

当然,如果一开始配置不全,后期也可以根据需要再打开visual studio installer修改其配置,这里花的时间挺长的,需要耐心等等。

2. 至此安装基本完成。注册一个账号便可以开始使用。

二、OpenGL的安装

首先需要注意的是,一定要先安装好vs才能安装OpenGL。

  1. 下载32位的GLFW(这个位数应该是32、64位的都可以,都不会影响后面的使用,但我记得说是安装32位的有个什么优点,另外,它和我们计算机的位数是无关的)。

下载链接如下:Download | GLFW

2. GLAD下载链接如下:https://glad.dav1d.de

需要修改的一个是gl版本,我们选择3.3以上的(具体为什么我也不知道,选太高的能不能运行我也不知道),profile下面选择core,然后点击下面的generate,会看到一个glad.zip,直接下载即可。

至此,准备工作完成。

3. 这时在VS2019里创建一个新的CPP工程,打开工程所在的文件夹,将glad文件夹下的include文件夹复制到刚才打开的文件夹下,并且也将glfw下include文件夹下的GLFW文件夹复制到刚刚的include文件夹下;

在刚刚打开的工程目录下新建lib文件夹,将glfw文件夹下的lib-vc2017下的两个静态库文件复制到新建的lib文件夹下;

将glad下的src文件夹里的glad.c也复制到工程目录下,右键源文件添加现有项,将glad.c文件添加进去(非常拗口,但慢慢来就行,毕竟我也找不到更合适的语言表达了)

显示如下,当然因为我的项目已经运行过所以会多出几个。

4. 接下来是对项目进行配置,配置过程等如下:

右键打开工程属性
先在C/C++下附加包含目录按如下配置

然后在链接器配置附加库目录

再点击链接器下输入,进入附加依赖项
添加opengl32.lib,glfw3.lib,msvcrt.lib

在属性里点击右下角应用即可保存设置

5. 测试

#include <iostream>
#include"glad/glad.h"//!!!注意这里,/前面的是h文件的上级目录,可能每个人安装不同,也有不同
#include"GLFW/glfw3.h"
using namespace std;static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS){glfwSetWindowShouldClose(window, GL_TRUE);}}//vertex shader
const GLchar* vertexShader_Code =
"#version 330 core\n"
"layout(location=0) in vec3 aPos;\n"
"void main()\n"
"{\n"
"gl_Position=vec4(aPos.x,aPos.y,aPos.z,1.0);\n"
"}";const GLchar* fragmentShader_Code =
"#version 330 core\n"
"out vec4 FragColor;\n"
"void main()\n"
"{\n"
"FragColor=vec4(1.0f, 0.5f, 0.2f, 1.0f);\n"
"}";int main()
{//三角顶点float vertices[] ={-0.5f,-0.5f,0.0f,//左下角0.5f,-0.5f,0.0f,//右下角0.0f, 0.5f,0.0f//顶端角};glfwInit();//初始化glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFWglfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFWglfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", nullptr, nullptr);glfwSetKeyCallback(window, key_callback);if (window == nullptr){cout << "Failed to create GLFW window" << endl;glfwTerminate();//terminate the glfw(end the glfw)return -1;}glfwMakeContextCurrent(window);//设置当前openGL上下if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){cout << "Failed to initialize GLAD" << endl;return -1;}//dataint isSuccess;char infoLog[512];//vertexShader dataunsigned int vertexShader;vertexShader = glCreateShader(GL_VERTEX_SHADER);glShaderSource(vertexShader, 1, &vertexShader_Code, NULL);glCompileShader(vertexShader);/*编译是否通过*/glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);cout << "ERROR::VertexShader::Compile_failed" << infoLog << endl;}else{cout << "SUCCESS::VertexShader" << endl;}//fragmentShader Dataunsigned int fragmentShader;fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);glShaderSource(fragmentShader, 1, &fragmentShader_Code, NULL);glCompileShader(fragmentShader);/*编译是否通过*/glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);cout << "ERROR::FragmentShader::Compile_failed" << infoLog << endl;}else{cout << "SUCCESS::FragmentShader" << endl;}//Shader Pragramunsigned int shaderProgram;shaderProgram = glCreateProgram();glAttachShader(shaderProgram, vertexShader);glAttachShader(shaderProgram, fragmentShader);glLinkProgram(shaderProgram);glGetProgramiv(shaderProgram, GL_LINK_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(shaderProgram, 512, NULL, infoLog);cout << "ERROR::ShaderProgram::Link_failed" << infoLog << endl;}else{cout << "SUCCESS::ShaderProgram" << endl;glUseProgram(shaderProgram);glDeleteShader(vertexShader);glDeleteShader(fragmentShader);}//vectices dataunsigned int VAO;unsigned int VBO;glGenVertexArrays(1, &VAO);//获得一个顶点数组对象glBindVertexArray(VAO);glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);glBindBuffer(GL_ARRAY_BUFFER, 0);glBindVertexArray(0);while (!glfwWindowShouldClose(window)){glfwPollEvents();//检查有没有触发事件glClearColor(0.27f, 0.27f, 0.27f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glUseProgram(shaderProgram);glBindVertexArray(VAO);glDrawArrays(GL_TRIANGLES, 0, 3);glfwSwapBuffers(window);//双缓冲(替换窗口的每一个像素值)}glfwTerminate();return 0;
}

三、Qt插件的安装

1. 安装qt软件

QT下载网址(各版本).
QT(5.12.11)直达界面.

下面这些图都用了别人的,我安装的是qt5.14.2版本,感觉大方向应该不会有问题。

根据操作系统不同,选择相应版本下载

双击运行…

输入QT账号信息,没有需要注册一个


在下一个界面中需要去勾选编译器,本项目需要勾选的编译器是MSVC32bit和64bit,两个都需要勾选,其他的不会用到。

Qt插件的安装据我目前所知,不一样的VS版本找的位置不一样,但都是在扩展里面去找,我所用的是VS2019,他的位置就在最上面的菜单栏上(扩展X)。

点击管理扩展,然后在里面找到qt插件并安装安装结束之后,扩展里就会出现Qt VS Tools,然后重新打开VS,新建项目时会有”QT GUI Application"则说明安装成功。

到这软件安装完成。

写博客比我想象的难多了,本来我还打算自己一个字一个字地码,一个步骤一个步骤地截屏,现在看来,是我自己想多了,文章中加了很多别人的东西。链接如下:

(90条消息) OpenGL安装教程_Thinker 123的博客-CSDN博客_opengl安装

(90条消息) QT安装 and VS2019中安装QT插件_8倍的博客-CSDN博客_vs2019安装qt插件

opengl+qt+vs学习笔记1:软件下载安装以及配置相关推荐

  1. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  2. Boost库学习笔记(一)安装与配置

    Boost库学习笔记(一)安装与配置 1. 获取boost https://www.boost.org/users/history/version_1_79_0.html 任选其一 boost的目录结 ...

  3. ubuntu系统vim常用命令学习以及ubuntu软件下载安装

    文章目录 一.ubuntu系统vim常用命令学习 (一)进入进入vim编辑器的方式 (二)vi的三种工作方式 (三)退出vi的命令 (四)命令模式下的各种命令 1.光标移动命令 2.插入命令 3.删除 ...

  4. pyside2 镜像安装_pyside2 镜像安装_【PySide2学习笔记】0_下载安装

    1. 安装 Python环境:3.7.3 从PyPi下载安装: pip install PySide2 # For the latest version on PyPi 通过http下载安装: pip ...

  5. Linux学习笔记Day01-02 Xshell下载安装过程

    一.Xshell远程登录Linux系统,下载安装 Xshell6,下载解压即可 链接:https://pan.baidu.com/s/14sOJ8rkQ_9Eje6qrbs-OHQ  提取码:yy7s ...

  6. 学习笔记:Windows 下Keras安装和配置指南

    目录: 目录: Windows下Keras安装和配置指南 Keras 框架搭建 安装 本系列参考官方文档官方文档 这就是keras可以参考前篇:这就是keras 学习笔记 Keras:一些基本概念 一 ...

  7. 二、Snapman多人协作电子表格之——软件下载安装与配置

    Snapman多人协作电子表格是一个即时工作系统. 一.软件下载地址 Snapman下载的官网地址:http://www.snapman.xyz 由于正在备案,新网址为:http://www.snap ...

  8. Vue 新手学习笔记:vue-element-admin 之安装,配置及入门开发

    所属专栏: Vue 开发学习进步 说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些 但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手 ...

  9. TensorFlow学习笔记(一)安装、配置、基本用法

    1. 安装 用conda install tensorflow 即可,注意,这里的python是3.6. 基于 Anaconda 的安装 Anaconda 是一个集成许多第三方科学计算库的 Pytho ...

  10. 【nginx学习笔记】1、安装与配置

    目录 一.系统版本 二.安装编译工具及库文件 三.安装 PCRE 四.安装 Nginx 五.启动nginx 六.访问nginx 七.nginx其他命令 一.系统版本 CentOS Linux rele ...

最新文章

  1. 互联网企业安全高级指南3.7.1 攻防驱动修改
  2. Spark任务提交底层原理
  3. rabbitmq在web管理界面登录失败login fail
  4. Fuel 9.0安装的Openstack Controller节点进程整理
  5. 年总结(三):风雨征程一年机房路
  6. J2ee项目环境搭建常用工具
  7. 欧姆龙PLC存储区划分小结
  8. 数学建模之蒙特卡罗模型
  9. 聊聊 Xcode 编译 ToolChain
  10. 微信小程序tab切换效果
  11. nssa和stub_华为路由器OSPF设置之NSSA和STUB
  12. potplayer最佳设置_potplayer最佳设置
  13. python 词云(Word Cloud)设计
  14. 基于Python实现的HTTP代理服务器设计
  15. 什么是大数据,大数据工具有那些,大数据流程是什么样的 一
  16. 仿bilibili微信小程序一
  17. SwrContext重采样结构体
  18. MySQL Workbench生成数据表关系图
  19. 数据库表的字段常用数据类型
  20. ADNI数据集几个使用小技巧 【1】

热门文章

  1. 详解电脑换主板需要重装系统吗
  2. CTF 栅栏加密解密----python代码实现
  3. 【应急响应】Linux入侵排查
  4. AVPlayer设置从哪儿开始播放
  5. C语言常用字符ASCII代码表,C语言常用转义字符、ASCII、优先级对照表
  6. MATLAB画图调整分辨率
  7. 2021年皓丽新品- 86KD1 86寸纳米智慧黑板(电容屏)-产品说明
  8. 快速开发实用工具VRTK-011
  9. ps 将图片背景色改为透明
  10. windows下编译librtmp库