opengl+qt+vs学习笔记1:软件下载安装以及配置
目前新阶段学习的第一个项目,仅以此文记录我的学习过程。如果有错误的、不全面的地方,欢迎斧正!
下载软件部分还算简单,感觉顺序也应该不是关键。我安装的是visual studio 2019,OpenGL2以及qt5.14.2。
一、visual studio的安装
1.官网地址:
Visual Studio: IDE and Code Editor for Software Developers and Teams
随后找到“下载visual studio”并点击选择community版本(个人版)即可,三个版本中只有这个版本是免费的。
- 下载完成之后,我们要对VS进行一些配置,这里我就针对vs+opengl+qt的项目进行配置。
当然,如果一开始配置不全,后期也可以根据需要再打开visual studio installer修改其配置,这里花的时间挺长的,需要耐心等等。
2. 至此安装基本完成。注册一个账号便可以开始使用。
二、OpenGL的安装
首先需要注意的是,一定要先安装好vs才能安装OpenGL。
- 下载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:软件下载安装以及配置相关推荐
- linux系统管理学习笔记之三----软件的安装
linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...
- Boost库学习笔记(一)安装与配置
Boost库学习笔记(一)安装与配置 1. 获取boost https://www.boost.org/users/history/version_1_79_0.html 任选其一 boost的目录结 ...
- ubuntu系统vim常用命令学习以及ubuntu软件下载安装
文章目录 一.ubuntu系统vim常用命令学习 (一)进入进入vim编辑器的方式 (二)vi的三种工作方式 (三)退出vi的命令 (四)命令模式下的各种命令 1.光标移动命令 2.插入命令 3.删除 ...
- pyside2 镜像安装_pyside2 镜像安装_【PySide2学习笔记】0_下载安装
1. 安装 Python环境:3.7.3 从PyPi下载安装: pip install PySide2 # For the latest version on PyPi 通过http下载安装: pip ...
- Linux学习笔记Day01-02 Xshell下载安装过程
一.Xshell远程登录Linux系统,下载安装 Xshell6,下载解压即可 链接:https://pan.baidu.com/s/14sOJ8rkQ_9Eje6qrbs-OHQ 提取码:yy7s ...
- 学习笔记:Windows 下Keras安装和配置指南
目录: 目录: Windows下Keras安装和配置指南 Keras 框架搭建 安装 本系列参考官方文档官方文档 这就是keras可以参考前篇:这就是keras 学习笔记 Keras:一些基本概念 一 ...
- 二、Snapman多人协作电子表格之——软件下载安装与配置
Snapman多人协作电子表格是一个即时工作系统. 一.软件下载地址 Snapman下载的官网地址:http://www.snapman.xyz 由于正在备案,新网址为:http://www.snap ...
- Vue 新手学习笔记:vue-element-admin 之安装,配置及入门开发
所属专栏: Vue 开发学习进步 说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些 但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手 ...
- TensorFlow学习笔记(一)安装、配置、基本用法
1. 安装 用conda install tensorflow 即可,注意,这里的python是3.6. 基于 Anaconda 的安装 Anaconda 是一个集成许多第三方科学计算库的 Pytho ...
- 【nginx学习笔记】1、安装与配置
目录 一.系统版本 二.安装编译工具及库文件 三.安装 PCRE 四.安装 Nginx 五.启动nginx 六.访问nginx 七.nginx其他命令 一.系统版本 CentOS Linux rele ...
最新文章
- 互联网企业安全高级指南3.7.1 攻防驱动修改
- Spark任务提交底层原理
- rabbitmq在web管理界面登录失败login fail
- Fuel 9.0安装的Openstack Controller节点进程整理
- 年总结(三):风雨征程一年机房路
- J2ee项目环境搭建常用工具
- 欧姆龙PLC存储区划分小结
- 数学建模之蒙特卡罗模型
- 聊聊 Xcode 编译 ToolChain
- 微信小程序tab切换效果
- nssa和stub_华为路由器OSPF设置之NSSA和STUB
- potplayer最佳设置_potplayer最佳设置
- python 词云(Word Cloud)设计
- 基于Python实现的HTTP代理服务器设计
- 什么是大数据,大数据工具有那些,大数据流程是什么样的 一
- 仿bilibili微信小程序一
- SwrContext重采样结构体
- MySQL Workbench生成数据表关系图
- 数据库表的字段常用数据类型
- ADNI数据集几个使用小技巧 【1】