windows配置OpenGL(VS C++版)

windows配置OpenGL(VS C++版),第1张

安装库以及开发环境 vs2022

官网下载就可以,刚开始下载的时候会有卡顿,是因为网络ip的问题,我尝试了一些改dns的方法,但是没有用,后来通过ip更换工具,把网换到了广东电信就可以了。这里下载的是一个下载器,只需要用ip更换工具的免费时长把那个下载器下好就可以了。

开发环境配置 OpenGL/GLSL

一般显卡都自带,我的显示是4.6,可以选择下载GLView查看。其实可以直接跳过这一步。

GLFW

需要用到CMAKE“构建”GLFW,目的是生成

  • glfw3.lib文件
  • GLFW文件夹
    *** 作步骤
  1. 下载CMAKE和GLFW源码,因为github的网的问题,要想办法。
  2. 解压之后打开bin目录下的cmake-gui.exe
  3. 点击Browse Source 点击解压后glfw的目录,点击Browse Bulid…选要生成的文件位置,然后点击左下角的Configure,会变红,(网上有说还要把最上面的BUILD_SHARED_LIBS点选中),再次点击Configure,而后点击Configure右边的Generate。
  4. 会在刚刚生成的文件中有一个文件:GLFW.sln,没有这个文件说明刚刚的步骤有问题,需要再去 *** 作。
  5. 用vs打开GLFW.sln,在新的vs窗口右侧的GLFW3,然后右键点击 选择生成(Build)。GLFW.sln的目录下会新生成很多文件。搜索我们要找的那个文件glfw3.lib文件和GLFW文件夹,确定有的话,这一步就完成了。
GLEW

没有复杂的 *** 作,解压之后找两个文件和一个文件夹

  1. glew32.lib
  2. glew32.dll
  3. GL文件夹
GLM

解压之后点击,找到glm文件夹。

SOIL2

虽然步骤稍有繁琐,但其实很简单。

  1. 下载premake,里面只有一个premake5.exe
  2. 下载SOIL2,解压
  3. 把premake5.exe复制到soil2的文件夹中
  4. 在soil2文件夹下,打开cmd
premake5 vs2022
  1. 会新生成make文件夹,里面有一个SOIL2.sln
  2. 和刚刚处理那个sln文件的方式一样,打开,然后点击soil2-static-lib生成。
  3. 需要的文件有soil2-debug.lib和SOIL2文件夹,同样的,也可以直接在当前目录进行搜索就可以了。
构建项目模板 把之前的文件准备成如下格式

矩形是自定义文件夹
圆形为之前预留的文件
椭圆是之前预留的文件夹

vs整合环境
  1. vs新建空的C++项目
  2. 在调试和发布模式下分别进行以下 *** 作
    1. 项目属性,C/C++下点击常规,在“附加包含目录” ,把刚刚的inlude文件夹编辑进去
    2. “链接器”–>“常规” -->“附加库目录”,把lib目录编辑进去
    3. “链接器”–>“输入” -->“附加依赖项”, 添加4个文件名glew32.lib glfw3.lib soil2-debug.lib opengl32.lib。
  3. 新建一个 main.cpp,可以写一个hello world,然后运行,把glew32.dll放入相应的Release或者Debug中,在main.cpp的上一级目录中会有一个x64(如果你是64位运行的话),点进去就有Release或者Debug,把glew32.dll放入其中。
测试代码

下面这个代码能跑通,就说明配置好了,可以选择导出模板,以避免重复配置。

#include 
#include 
#include 

using namespace std;

void init(GLFWwindow* window) { }

void display(GLFWwindow* window, double currentTime) {
	glClearColor(1.0, 0.0, 0.0, 1.0);
	glClear(GL_COLOR_BUFFER_BIT);
}

int main(void) {
	if (!glfwInit()) { exit(EXIT_FAILURE); }
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter 2 - program 1", NULL, NULL);
	glfwMakeContextCurrent(window);
	if (glewInit() != GLEW_OK) { exit(EXIT_FAILURE); }
	glfwSwapInterval(1);

	init(window);

	while (!glfwWindowShouldClose(window)) {
		display(window, glfwGetTime());
		glfwSwapBuffers(window);
		glfwPollEvents();
	}

	glfwDestroyWindow(window);
	glfwTerminate();
	exit(EXIT_SUCCESS);
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/789553.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-05
下一篇2022-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存