OpenGL+VS2017 环境配置(亲测好使)::附带必要知识点

在VS2017配置OpenGL开发环境 这个方法适合初学者使用,较为简单方便。 第一,你的VS2017一定要安装了C/C++开发组件 可以打开Visual Studio Installer来查看 另外,确定你有安装NuGet包管理器,在单个组件中查看,没有请勾选 glut的库可以点击下面的链接下载 [https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip](... 阅读详情

更新日志

  • 2020/12/3 增加更新日志,调整该文章版面

首先参考了LearnOpenGL文档,此文档也适合新手入门,目前也在学习中,感觉非常不错。配合而《OpenGL编程指南》看效果会更好。


更新(2020年5月14号更新 关于不想在Linker->Input中重复书写库文件名的问题)

在2018年12月8号更新的第三步基础上,将需要重复包含的库文件名写入到Linker->Input中即可。


更新(2018年12月8号更 关于很多小伙伴留言说---不想重复包含include路径和lib路径问题)

建议新来的小伙伴先看原来的配置教程,先看懂原理,以不变应万变。

第一步: 打开 VS2017 找到 View->Other Windows->Property Manager 

第二步:右边会蹦出一个框(根据你的库类型选择Debug还是Release,平台是Win32还是x64,一般是Debug平台是Win32)

第三步:加入头文件include文件夹路径和库文件lib文件夹路径(注意这里是VC++ Directories选项,只需要配置include和lib文件夹路径)

第四步:点击 确定

之后你每创建新工程后都不用再配置include路径和lib路径了。

 

第五步:添加需要的库文件,现在你只需要在不同工程指定你需要的库文件就好了。这和原来配置添加库文件是一样的,只不过不需要配置include和lib的路径了只需要添加库文件就行。因为include头文件目录和lib库文件目录之前已经配置好了。


OpenGL配置


第一步:

 下载vs2107(2013以上的版本也行,太老的版本不太清楚)


第二步:

1.下载GLFW

注:64位的会有莫名其妙的bug

2.下载GLEW


注:有的小伙伴可能会对OpenGL的各种头文件、库文件整糊涂肯定会有人问GLUT不下吗?在这里有必要说明一下:

(此处如果看不太懂,可以跳过看下面的【综上所述】)

一.OpenGL

 

OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux)、实用工具库(glut),窗口库(glx、agl、wgl)和扩展函数库等。gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大(aux很大程度上已经被glut库取代。)。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。

 

二.gult:OpenGL工具库 OpenGL Utility Toolkit

 

这部分函数以glut开头,主要包括窗口操作函数,窗口初始化、窗口大小、窗口位置等函数;回调函数:响应刷新消息、键盘消息、鼠标消息、定时器函数等;创建复杂的三维物体;菜单函数;程序运行函数。gult对应的开源实现是freegult。

 

三.glew

GLUT或者FREEGLUT主要是1.0的基本函数功能;GLEW是使用OPENGL2.0之后的一个工具函数。

不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。

 

四.glfw

 

GLFW无愧于其号称的lightweight的OpenGL框架,的确是除了跨平台必要做的事情都没有做,所以一个头文件,很少量的API,就完成了任务。GLFW的开发目的是用于替代glut的,从代码和功能上来看,我想它已经完全的完成了任务。

一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。因为OpenGL没有窗口管理的功能,所以很多热心的人写了工具来支持这些功能,比如早期的glut,现在的freeglut等。

那么GLFW有何优势呢?glut太老了,最后一个版本还是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齐全,但是bug太多。稳定性也不好(不是我说的啊),GLFW应运而生。

 

 

综上所述:(2018年12月8日更新,对以下三条进行了一些补充)

1.OpenGL只有框架没有实现,换句话说就是OpenGL只有函数声明没有实现,类似于接口和虚函数。所有的实现是显卡生产商提供。比如NVIDIA(英伟达)就要自己实现OpenGL函数内容,所以不同的生产商可以对自己的产品提供优化,毕竟代码是自己写的。

2.glfw是glut的升级和改进。glfw是用来显示窗口和捕捉窗口事件的一套API,可以理解成Qt和windows平台的WPF。OpenGL只是一套控制GPU的规则,并没有对于跨平台窗口显示和事件进行规定,所以需要一个显示显卡渲染的窗口,这就是glfw的作用。笔者建议用glfw学openGL学的感觉差不多了,可以学学Qt,这是一个非常强大的跨平台GUI库,非常推荐。

3.glew包含了OpenGL所需的核心:<补充>第一条已经说过openGL的实现是显卡生产商,那么系统如何才能找到这些实现好的函数呢?而且不同的平台函数存放地方还不同,文件结构也不同。有没有一种方式能够自动找到OpenGL的函数?--这就是glew的作用-->用来找openGL的函数,并初始化,这样我们就能直接调用OpenGL的函数了。


!!!更新(2018年7月更)!!!:glad与glew,简单说glad是glew的升级版。用哪个都行。就是glew比较老,glad比较新。

   说明:

  1. glad有一个在线服务,直接下下来就可以用了(编译好的),将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL版本(3.3是可编程管线版本,但更新的版本也能正常工作)。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。现在可以先(暂时)忽略拓展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。
  2. 下载是个压缩文件,解压完成后会有这样的文件夹结构:test
  3. 包含两个头文件目录(内有头文件glad.h和khrplatform.h),和一个src文件夹下的glad.c文件。
  4. 只需要将原来的第五步的 VC++目录 -> 包含目录 中的glew的include文件夹改成glad的include文件夹即可。后面的步骤glad都不需要。
  5. 将glad.c文件复制到源文件夹下:glad.c
  6. 注意glad.c文件这时候或者编译的时候会出错,首先看看glad.c的include的路径是不是对的,有时候包含目录文件夹路径不一样,你要改成你自己配置的glad路径(就是之前VC++目录配置的路径)。
  7. 将第七步的代码改成如下
#include <glad/glad.h>
#include <GLFW/glfw3.h>
 
#include <iostream>
 
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
 
int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
 
    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
 
    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }    
 
    while (!glfwWindowShouldClose(window))
    {
 
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);
 
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
 
    glfwTerminate();
    return 0;
}

 代码说明请参考原先第七步,原理都差不多。


第三步:

解压下载的文件。


第四步:

1.打开vs2017,新建c++空项目。

注:如果新建Windows控制台应用程序,程序内部会自动包含stdafx.h的头文件,你必须在源文件的开头写上“#include“stdafx.h”相关语句,而且之后引入glew,glfw包会有莫名其妙的错误。所以创建一个空项目。

 

2.点击“解决方案资源管理器”,右键点击源文件,添加新项,创建.cpp源文件(我起名叫main.cpp)


第五步:

 1.右键点击项目,在弹出的选项中,单击 “属性”

 

2.点击“VC++目录”,第二步会有下拉列表,单击“编辑”

 

3.点击添加头文件。分别添加下载的glew和glfw文件夹下的include文件夹(include文件夹下是我们需要的头文件),点击“确定”

 

4.同样的道理,加入库文件。(库文件和头文件是相辅相成的),对应的路径就是glew和glfw文件夹下的lib文件夹

注:

1.当添加glew时,当选到lib文件夹后请继续选择,lib->Release->Win32,请选择Win32后点击“选择文件夹”(x64会有莫名其妙的问题)

2.当添加glfw时,低版本请选择对应版本,2015以上版本请选择“lib-vc2015”

 


第六步

1.包含的库文件VS还认不出来,我们需要指定一下。配置链接器。

 

2.点击“编辑”后输入如下:

 

opengl32.lib
glfw3.lib
glew32s.lib

注:

 

行与行之间请按回车

opengl32.lib是系统自带的。

glfw3.lib,glew32.lib,glew32s.lib 如果你足够细心,你会发现这些就是之前包含的lib文件夹下的文件名

不包括:

glew32.lib

 

点击“确定”

 

至此OpenGL的环境就初步配好了,为什么叫“初步配好呢”?

答案:vs可能会和这些文件起冲突,不过不用担心,配置很简单。


第七步:让我们来看看写代码到底运行好不好使

1.在之前的main.cpp中添加如下代码:(初始化一个Opengl窗口)

#include<iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include<GLFW/glfw3.h>

using namespace std;

int main(int argc, char** argv[])
{
	/*glewExperimental = GL_TRUE;
	if (glewInit()!=GLEW_OK)
	{
		cout << "failed to initalize GLEW" << endl;
		return -1;
	}*/

	glfwInit();//初始化
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFW
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFW
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//
	glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);
	if (window==nullptr)
	{
		cout << "Failed to create GLFW window" << endl;
		glfwTerminate();
		return -1;
	}
	glfwMakeContextCurrent(window);
	while (!glfwWindowShouldClose(window))
	{
		glfwPollEvents();
		glfwSwapBuffers(window);
	}
	glfwTerminate();
	return 0;


}

2.点击“运行”

 

恭喜!!!恭喜!!!你已经成功初始化了一个OpenGL的窗口!!!但是~~~

 

当我们关掉程序回到“错误列表”中会发现

警告LNK4098默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:libraryOpen

C:\Users\g1018\source\repos\Open\Open\LINK1

 

不用担心,解决方法如下:

1.还记得之前的链接器的那个页面吗?调出来

2.点击“编辑”,输入如下:

 

MSVCRT.lib

 

点击“确定”

注:如果往后还有库冲突,解决方法同理

 

至此所有配置都已经配完了,祝小伙伴学习快乐!!!

vs2017配置openGL的解决方案 这两天刚尝试使用openGL将球体网格化。vs2017配置openGL的解决方案如下: 跑的是这个链接https://blog.youkuaiyun.com/xdg_blog/article/details/52864872的代码,下面需要的库文件也是针对这个代码的,需要其他库添加的方法也一样。   1. 在官网下载glut,官网连接:https://www.opengl.org/resources/l... 阅读详情

相关推荐

无法打开包含GL/glew.h文件 怎么解决?

1.下载glew-2.1.0.zip(当前最新版本,我下载的好像不分32和64)GLEW: The OpenGL Extension Wrangler Library2.复制文件。见glew-2.1.0\doc\install.html,解压后的文件中有。也即如下操作:bin/glew32.dll to %SystemRoot%/system32lib/glew32.lib to

caizhaoyang589的博客 1万+

VS2022配置OpenGL

Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)下载安装Community版本即可。

m0_53564243的博客 5539

OpenGL学习笔记【2】——开发环境配置(GLFW,VS,Cmake),创建第一个项目

GLFW是配合 OpenGL 使用的轻量级工具程序库,缩写自 Graphics Library Framework(图形库框架)。GLFW 的主要功能是创建并管理窗口和 OpenGL 上下文,同时还提供了处理手柄、键盘、鼠标输入的功能。GLFW是用C语言编写的,GLEW 是对底层 OpenGL 的接口的封装,可以让开发者的代码跨平台,支持Windows,macOS,X11和Wayland。

奋斗的菇凉的博客 4306

GLEW库安装和初始化

转载请注明出处! GLEW库安装和初始化          GLEW库是OpenGL的扩展库,用于支持OpenGL1.1以上的版本[0]。比如着色器特性。一般非集成显卡都能支持到OpenGL2.0或者更高,但是没有GLEW库依然无法调用高版本OpenGL的函数。GLEW能自动识别你的平台所支持的全部OpenGL高级扩展涵数。也就是说,只要包含一个glew.h头文件,你就能使用gl, glu,

子宽的专栏 2万+

vs2017+MFC+opengl+nehe

  vs2017+MFC+opengl+nehe1 在vs2017中file-》new project,mfc的应用,设置为:   2  在stdafx.h中加入#include &lt;GL/glew.h&gt;#include &lt;GL/glut.h&gt;#include &lt;afxtempl.h&gt; #pragma comment (lib, "freeglut.lib")#p...

ljx1112233的博客 1796

vs2017+OpenGL配置(glfw+glew、glfw+glad、glut三种环境)

准备工作 首先安装vs2017,安装的时候选择的是C++那个包(第一行右边那个,忘截图了。。。) 然后下载glfw和glad(可以用glfw+glew,glad比glew新且有前景),最老的是glut,比较轻量,但不适合大型工程,一般会被glfw所替代。 下载注意位数,此次用的都是32位的,vs2017属性设置的时候也要注意32位,调试的时候注意x86 一些体会:也在网上看了许多人的博客,写的很...

Sea_Sand息禅 3032

VS2017+OpenGL环境的配置(完结篇)

最近学校里新开了一门计算机图形学的课程,开始慢慢接触OpenGL,今天来分享一下如何在VS2017里配置OpenGL。 刚开始的学习必然来自度娘,不过看了好多大神的文章让我这个初学者很懵逼,纳尼!VS也要配置,配置个OpenGL这么复杂吗?今天小生来教大学一个万能配置方法。 下载VS2017+各种依赖库 想要玩转openGL,手下你得有一个工具,这里小生用的是VS2017(其他版本没测试过),...

BLUEHEART 2万+

WIN10+OpenGL+GLFW+GLEW+VS2017环境配置

WIN10+OpenGL+GLFW+GLEW+VS2017环境配置 OpenGL包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API(Application Programming Interface, 应用程序编程接口),它仅仅是一个由Khronos组织制定并维护的规范(Specification)。一般OpenGL的库是由你电脑显卡的显卡商提供开发和维护的。 GLFW...

adullperson的博客 4066

Windows10下vs2017的OpenGL的配置

Windows10下vs2017的OpenGL的配置有关Windows10下vs2017的OpenGL如何配置,可参照如下方法:目录用 [TOC]来生成目录:Windows10下vs2017的OpenGL的配置 目录 下载OpenGL 配置OpenGL 测试 最后下载OpenGL 打开网址:https://www.opengl.org/resources/libraries/glut/glut_do

wangwei19951128的博客 1万+

OpenGL在VS2017下的配置

方法一:1.然后开始配置opengl 下载库文件:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip2.找到目录(VS下载位置)放置配置文件: &lt;1&gt;、Win10系统,所以glut.dll与glut32.dll两个文件放到了C:\WINDOWS\SysWOW64 &lt;2&gt;、GL.H、GLAUX.H...

sinat_36475430的博客 4749

OpenGL —— 1、Vs2017搭建glad、glfw环境,并附代码测试(附上好用的OpenGL文档、教程)

Wx GZH:码农总动员。

1751

OpenGL安装(适用于VS2017)

OpenGL安装(适用于VS2017) 这个是参考网上的博客,感谢前人的贡献,文末加上了一些我个人踩的坑 参考博客:在VS2017中安装OpenGL - 我有点帅哦 - 博客园 利用VS2017下的包管理软件Nuget下载安装OpenGL库 优点:安装很简单 缺点:每次创建项目都要重新下载OpenGL库 VS2017创建C++控制台程序,最好选择空项目(否则可能会有其他的错误) 创...

weiyang_tang的博客 1万+

用 dism 合并与删除 wim 映像

一、合并 假设 installA.wim 有 3 个映像,installB.wim 有 1 个映像。 1、全部合并 将 installA.wim 中的 3 个卷映像合并到 installB.wim 中,这样 installB.wim 中的卷映像增加到 4 个。 dism/export-image/sourceimagefile:d:\installA.wim/sourceindex:1/destinationimagefile:d:\installB.wim dism/export-image/source

KefanWon的博客 5199

VS2017 配置 OpenGL 环境

Visual Studio Community 2017 配置 OpenGL 环境 安装 VS Community 2017 OpenGL 库需要绑定相应的语言环境,这里本人选择的Windows下的VC++,它被包含于Visual Studio中. 下载VS 2017:VS Community 2017 官...

deniece1的博客 1891

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7176

从IMU数据到精准定位:手把手推导ESKF中的四元数运动学与误差状态方程

本文详细介绍了如何从IMU数据推导ESKF中的四元数运动学与误差状态方程,实现精准定位。通过分析误差状态卡尔曼滤波器的优势、四元数表示的必要性,以及IMU测量模型和运动学基础,提供了完整的数学推导和实现要点。适合机器人定位和自动驾驶领域的算法工程师参考,帮助优化导航系统性能。

weixin_30271335的博客 680

【OpenGL】专栏总揽 与 CLion VS2019 环境配置(零)

CLion 配置 我的 CLion 使用的是Code::Block的 MinGW,如果要在Win10上使用CLion 需要设置 Toolchains ,在 CLion 设置中即可查看。你也可以网上查找 MinGW CLion 配置。 配置好CLion,可以正常运行C++后,需要到 https://www.transmissionzero.co.uk/software/freeglut-devel/...

qq_40515692的博客 2291

Python自动化批量识别化学分子结构——从图片到SMILES/SDF的实战指南

本文提供了使用Python自动化批量识别化学分子结构图片的实战指南。详细对比了基于Molvec API的在线快速方案与本地部署OSRA工具的两种路径,包含完整的代码示例、环境配置及优化技巧,帮助化学研究者高效地将图片批量转换为SMILES或SDF格式,显著提升数据处理效率。

apple5的专栏 946

VS2017配置OPENGL

这是配置OpenGL的基本步骤.上面的几个文件只是其中的一小部分,还有其他库需要配置的话就按照上面的步骤来一遍,只不过对应的文件名要改改.

weixin_44923692的博客 1470

在轻量化与精度之间取得平衡:YOLOv8 + GhostNet 的设计与实验分析

摘要: GhostNet系列(GhostNet、GhostNetv2、GhostNeXt)通过“幽灵特征图”技术,以极低计算量生成丰富特征,为YOLOv8提供轻量化改造方案。该技术能在减少参数量与计算量的同时保持或提升检测精度,适用于边缘设备部署。实现时需替换YOLOv8的Backbone为GhostNet模块,并通过消融实验验证其有效性。实验数据表明,改造后的模型在参数量降低30%的同时,推理速度提升28.6%,mAP@0.5最高提升1.9个百分点,平衡了轻量化与精度,为毕设提供技术创新性与工程落地性的双

m0_64661770的博客 194

Arcgis使用NDVI值遥感反演叶面积指数(LAI)

经验模型反演操作不难,主要是要多看文献,了解公式。本文中的公式我也不清楚是哪个作物的NDVI和LAI的关系(别人提供的),继续看文献整理吧。后续会在下面罗列更新一下主要公式。

所有专家都曾始于新手 8430

Opengl+GLFW+GLEW+VS2017环境配置 +绘制四边形

opengl配置+GLEW+GLFW+VS2017 一、开发环境说明 操作系统:windows 开发软件:Visual Studio 2017 编程语言:opengl 二、下载 glfw :从它官方网站的下载页上下载 32-bit Windows binaries glew :从它官方网站的下载页上下载最新的版本; 三、配置操作说明 1、打开vs2017软件,依次点击【文件】–【新建】–【...

热带宇林 964

166、电流环带宽测试

本文分享了电流环带宽测试的实战经验,揭示了常见误区:误将系统其他环节(如PWM、ADC、传感器)的延迟当作电流环性能。强调带宽测试需先断开速度/位置环,采用扫频法注入正弦信号,结合伯德图分析幅值与相位响应。关键点包括:控制频率步进为对数、确保采样时序精准、避免传感器带宽限制影响结果。文中指出“假带宽”现象(如鼓包、增益超0dB)多源于非线性或机械共振,建议遵循“先开环后闭环”“带宽非越高越好”“阶跃验证”三原则,并建立出厂基准曲线以支持后期故障诊断。

2401_88858637的博客 177

Visual Studio 2017 配置 OpenGL

大三第一学期开了一门《计算机图形学》的课,老师让安装一下 VS,并进行 OpenGL 配置,以后上课带电脑到教室,课堂进行编程。这里安装的是 Visual Studio 2017 版本。 一、下载 VS 2017 去官网,选择 VS 2017 社区版进行下载,并选择 C/C++ 模块进行安装。 二、下载 GLEW 去官网,下载 Binaries Windows 32-bit...

Wonz 7183

FC7300 SPI MCAL配置引导

Example - QMI8A01z外设:Example - QMI8A01z外设:

舊梦的博客 258

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VS2017+OpenGL环境配置

最终创建好的项目可以在这里获取: 链接:https://pan.baidu.com/s/1XXn3LWHooRNWfYRTnj5CMQ 提取码:ef95 这是一个64位的项目。 下面是创建过程: 1.新建一个文件夹OpenGLWin 2.打开VS2017,新建空项目OpenGLWin 3.新建源文件main.cpp 4.在解决方案文件夹(有.sln文件的文件夹)中新建文件夹glew 5.在...

qq_16555407的博客 1594

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: CG语言 基本光照渲染
下一篇: 渲染基础-渲染管线(Render-pipeline)
FuXiii
博客等级 码龄9年 89粉丝 21原创
评论 86
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值