查看: 3554|回复: 20

Visual Studio 2019 配置 OpenGL

[复制链接]
发表于 2022-9-26 16:14:19 | 显示全部楼层 |阅读模式
Visual Studio 2019 配置 OpenGL

阅读原文Visual Studio 2019 配置 OpenGL,祝你获得更好的阅读体验。

1. 下载VS2019

去官网,选择 VS 2019 社区版进行下载。

Visual Studio 2019 配置 OpenGL-2040

2. 下载 GLEW

去官网,下载 Binaries Windows 32-bit and 64-bit。

Visual Studio 2019 配置 OpenGL-9721

3. 下载GLFW

去官网,下载 Windows pre-compiled binaries 32-bit(64 位会出现莫名其妙的问题)

Visual Studio 2019 配置 OpenGL-8832

4. 配置 OpenGL

4.1 新建 C++ 空项目

打开 vs2019,文件 —> 新建 -> 项目 -> 空项目 ,命名为 OpenGLExercise01

Visual Studio 2019 配置 OpenGL-8773

4.2 创建 main. cpp 源文件

右侧 解决方案资源管理器 下,源文件 —> 添加 —> 新建项 ,创建名为 main.cpp源文件
4.3 开始配置 OpenGL

4.3.1 添加 include 文件


  • 右键项目 OpenGLExercise ,在弹出的选项中,单击 属性
  • 点击 C/C++ —> 常规 —> 附加包含目录 —> 编辑

Visual Studio 2019 配置 OpenGL-5964


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

Visual Studio 2019 配置 OpenGL-1151

4.3.2 添加 lib 文件


  • 点击 链接器 —> 常规 —> 附加包含目录 —> 编辑

Visual Studio 2019 配置 OpenGL-1580


  • 分别添加下载的 glew 和 glfw 文件夹下的 lib 文件夹。

    • 当添加 glew 时,当选到 lib 文件夹后请继续选择,lib -> Release -> Win32 , 请选择 Win32 后点击 “选择文件夹”(x64 会有莫名其妙的问题)
    • 当添加 glfw 时,请选择对应版本,2019 版本请选择 lib-vc2019


Visual Studio 2019 配置 OpenGL-3371

4.3.3 添加库依赖项


  • 点击 链接器 —> 输入 —> 附加依赖项 —> 编辑

Visual Studio 2019 配置 OpenGL-766


  • 输入如下:
    opengl32.lib
    glfw3.lib
    glew32s.lib

Visual Studio 2019 配置 OpenGL-7219


  • 最后确定
5. 程序调试

5.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;


}


Visual Studio 2019 配置 OpenGL-3042

5.2 解决库冲突

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

Visual Studio 2019 配置 OpenGL-2549

点击属性,找到“编辑”

Visual Studio 2019 配置 OpenGL-4527

输入如下:
MSVCRT.lib
LIBCMT.lib
最后,点击一下右下角的应用,再点击确定。

Visual Studio 2019 配置 OpenGL-2541

注:如果往后还有库冲突,解决方法同理。
5.3 解决引言中的链接错误

出现警告:glew32s.lib(glew.obj) : warning LNK4099: 未找到 PDB“vc120.pdb”(使用“glew32s.lib(glew.obj)”或在“F:\QinNian'GitHub\Computer_Graphics\OpenGL_Learn\01_入门\01_OpenGL 环境配置\OpenGLExercise01\Debug\vc120.pdb”中寻找);正在链接对象,如同没有调试信息一样
如果确认不需要PDB, 即不需要调试开源库, 完全可以在设置里将/Zi或/ZI去掉, 这样即能消除warning也能提升开源库编译速度
将 glew 工程配置成不生成调试信息,或把调试信息直接生成到.obj文件中(而非.pdb文件)即可.
项目属性 --> 配置属性 --> C/C++ --> 常规 --> 调试信息格式
空表示不生成调试信息,
C7把调试信息直接生成到.obj文件中
默认的Zi生成.pdb文件


Visual Studio 2019 配置 OpenGL-8702

6. 写在最后

我哭了,终于弄好了!!!

Visual Studio 2019 配置 OpenGL-5147
发表于 2022-9-26 16:25:35 | 显示全部楼层
作者您好,你这篇文章写的太好了!我用这个教程没有什么阻力的就配置好了,但是没有用到5.3 解决引言中的链接错误,我没有这个警告。总之,很感谢您

[超得意]
回复 支持 反对

使用道具 举报

发表于 2022-9-26 16:37:02 | 显示全部楼层
用vcpkg,只要一行代码:vcpkg install glfw
回复 支持 反对

使用道具 举报

发表于 2022-9-26 16:42:44 | 显示全部楼层
下载vs时需要勾选什么工作负载?
回复 支持 反对

使用道具 举报

发表于 2022-9-26 16:49:29 | 显示全部楼层
glew的官网进去不了
回复 支持 反对

使用道具 举报

发表于 2022-9-26 16:54:31 | 显示全部楼层
用梯子进去
回复 支持 反对

使用道具 举报

发表于 2022-9-26 17:09:19 | 显示全部楼层
你话最多,把你置顶
回复 支持 反对

使用道具 举报

发表于 2022-9-26 17:18:03 | 显示全部楼层
非常感谢, 配置成功, 不过我使用的是64位的, 所以改成64位的好像也没有报错鸭
回复 支持 反对

使用道具 举报

发表于 2022-9-26 17:25:05 | 显示全部楼层
跟着流程走了,为什么创建window失败。。。
回复 支持 反对

使用道具 举报

发表于 2022-9-26 17:40:00 | 显示全部楼层
vcpkg不二之选
回复 支持 反对

使用道具 举报

发表于 2022-9-26 17:54:03 | 显示全部楼层
找了这么多,终于在你这解决了!!!赞!!!
回复 支持 反对

使用道具 举报

发表于 2022-9-26 18:00:34 | 显示全部楼层
我也没遇到链接错误耶
回复 支持 反对

使用道具 举报

发表于 2022-9-26 18:05:51 | 显示全部楼层
这个是每次新建项目都需要重新配置吗,还是我哪里出了问题
回复 支持 反对

使用道具 举报

发表于 2022-9-26 18:19:48 | 显示全部楼层
成功了谢谢
回复 支持 反对

使用道具 举报

发表于 2022-9-26 18:34:34 | 显示全部楼层
failed to create可能是什么问题
回复 支持 反对

使用道具 举报

发表于 2022-9-26 18:46:40 | 显示全部楼层
焦头烂额四个小时,被这篇文章救了[捂脸]泪目
回复 支持 反对

使用道具 举报

已绑定手机
发表于 2022-9-26 18:53:18 | 显示全部楼层
我也没找到报错
回复 支持 反对

使用道具 举报

发表于 2022-9-26 19:00:46 | 显示全部楼层
应该不需要把,链接了库之后就可以使用了。连接了库相当于把仓库的位置告诉了编译器了。
回复 支持 反对

使用道具 举报

发表于 2022-9-26 19:06:18 | 显示全部楼层
非常好,点个赞
回复 支持 反对

使用道具 举报

发表于 2022-9-26 19:21:02 | 显示全部楼层
我也哭了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表