vs2019配置opengl环境_vs2010配置opengl

vs2019配置opengl环境_vs2010配置opengl这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

VS2019下载与安装

1.下载和安装Visual Studio

选择社区版本进行下载即可
在这里插入图片描述
2.在 Visual Studio 中安装 C 和 C++ 支持

Visual Studio显示行号

找到工具菜单——–>选项——>文本编辑器——->C/C++
在这里插入图片描述

OpenGL安装

1.创建项目,并命名(此处我命名为main),指定存储位置

在这里插入图片描述

2.创建好之后如图所示

在这里插入图片描述

3.下载GLFW

GLFW下载链接(此处我下载的是32-bit Windows binaries,因为我的VS2019是在本地x86环境下编译的)vs2019配置opengl环境_vs2010配置opengl

将下载好的文件进行解压,并把其中include文件夹内的GLFW文件夹内的头文件,拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\GL中。若没有GL文件夹则自己创建。
在这里插入图片描述

在这里插入图片描述
将解压后的文件夹中的lib-vc2019文件夹内的glfw3.dll拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin的Hostx64和Hostx6文件夹下的每个文件夹内部(每个都有x64和x86,需要拷贝到最小文件夹内部);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将glfw3. lib和glfw3dll.lib拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\lib的x64和x86文件夹内
在这里插入图片描述

4.下载GLEW

下载GLEW
在这里插入图片描述
解压下载好的压缩文件,将include文件夹中的GL文件夹内的头文件,全部拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\GL中
在这里插入图片描述
在这里插入图片描述

  • 将glew-2.1.0-win32\glew-2.1.0\bin\Release下的Win32内的dll文件拷贝到C:\Program
    Files (x86)\Microsoft Visual
    Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin的Hostx64的x86文件夹内和Hostx86的x86文件夹内
  • 同理,将glew-2.1.0-win32\glew-2.1.0\bin\Release下的x64内的dll文件拷贝到C:\Program
    Files (x86)\Microsoft Visual
    Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin的Hostx64的x64文件夹内和Hostx86的x64文件夹内

在这里插入图片描述
在这里插入图片描述

  • 将glew-2.1.0-win32\glew-2.1.0\lib\Release下的Win32内的lib文件拷贝到C:\Program
    Files (x86)\Microsoft Visual
    Studio\2019\Community\VC\Tools\MSVC\14.27.29110\lib的x86文件夹内
  • 将glew-2.1.0-win32\glew-2.1.0\lib\Release下的x64内的lib文件拷贝到C:\Program
    Files (x86)\Microsoft Visual
    Studio\2019\Community\VC\Tools\MSVC\14.27.29110\lib的x64文件夹内

5.下载FreeGLUT

FreeGLUT下载地址
在这里插入图片描述
将下载后的文件解压,将include文件夹内的GL文件夹内的除glut.h的其他头文件全部拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\GL中
在这里插入图片描述
同理,将lib文件和dll文件按照glew的安装文件夹路径分别安装即可。

6.进入VS2019,点击项目,管理NuGet程序包,在左边浏览栏目里搜索nupengl,安装它们

在这里插入图片描述

7.在运行代码之前,将freeglut.dll, glew32.dll, glfw3.dll 拷贝到C:\Windows\SysWOW64 或C:\Windows\System32中.(为保险起见我两个文件夹内都拷贝了)

8. 进入VS2019,右键之前创建的main项目(右侧),选择属性,连接器,输入,将freeglut.lib;glew32.lib;glfw3.lib;OpenGL32.lib;复制到附加依赖项中

在这里插入图片描述
在这里插入图片描述

3.测试代码1

#include <GL/glew.h> 
#include <GL/glfw3.h> 
#include <iostream>


void window_resized(GLFWwindow* window, int width, int height);
void key_pressed(GLFWwindow* window, int key, int scancode, int action, int mods);
void show_glfw_error(int error, const char* description);

 
int main()
{ 
   
    glfwSetErrorCallback(show_glfw_error);


    if (!glfwInit()) { 
   
        std::cerr << "GLFW 초기화 실패" << '\n';
        exit(-1);
    }


    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);


    GLFWwindow* window = glfwCreateWindow(
        800, // width
        600, // height
        "OpenGL Example",
        NULL, NULL);
    if (!window)
    { 
   
        std::cerr << "윈도우 생성 실패" << '\n';
        glfwTerminate();
        exit(-1);
    }


    glfwMakeContextCurrent(window);


    glfwSetWindowSizeCallback(window, window_resized);
    glfwSetKeyCallback(window, key_pressed);


    glfwSwapInterval(1);


    glewExperimental = GL_TRUE;
    GLenum err = glewInit();
    if (err != GLEW_OK) { 
   
        std::cerr << "GLEW 초기화 실패 " << glewGetErrorString(err) << '\n';
        glfwTerminate();
        exit(-1);
    }


    std::cout << glGetString(GL_VERSION) << '\n';


    int nr_extensions = 0;
    glGetIntegerv(GL_NUM_EXTENSIONS, &nr_extensions);

    for (int i = 0; i < nr_extensions; ++i) { 
   
        std::cout << glGetStringi(GL_EXTENSIONS, i) << '\n';
    }


    glClearColor(0, 0, 1, 1);


    while (!glfwWindowShouldClose(window)) { 
   

        glClear(GL_COLOR_BUFFER_BIT);

        glfwSwapBuffers(window);

        glfwPollEvents();
    }


    glfwDestroyWindow(window);


    glfwTerminate();
    return 0;
}

void show_glfw_error(int error, const char* description) { 
   
    std::cerr << "Error: " << description << '\n';
}

void window_resized(GLFWwindow* window, int width, int height) { 
   
    std::cout << "Window resized, new window size: " << width << " x " << height << '\n';

    glClearColor(0, 0, 1, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    glfwSwapBuffers(window);
}

void key_pressed(GLFWwindow* window, int key, int scancode, int action, int mods) { 
   
    if (key == 'Q' && action == GLFW_PRESS) { 
   
        glfwTerminate();
        exit(0);
    }
}

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

4.测试代码2

#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>

void MyDisplay() { 
                         //디스플레이 콜백함수
 glClear(GL_COLOR_BUFFER_BIT);       //GL 상태변수 설정
 glViewport(0, 0, 300, 300);
 glColor3f(1.0, 1.0, 1.0);
 glBegin(GL_POLYGON);                //입력 기본요소 정의
 glVertex3f(-0.5, -0.5, 0.0);
 glVertex3f(0.5, -0.5, 0.0);
 glVertex3f(0.5, 0.5, 0.0);
 glVertex3f(-0.5, 0.5, 0.0);
 glEnd();
 glFlush();
}

int main(int argc, char** argv) { 
   
 glutInit(&argc, argv);               //GLUT 윈도우 함수
 glutInitDisplayMode(GLUT_RGB);
 glutInitWindowSize(300, 300);
 glutInitWindowPosition(0, 0);
 glutCreateWindow("OpenGL Sample Drawing");

 glClearColor(0.0, 0.0, 0.0, 1.0);   //GL 상태변수 설정
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);

 glutDisplayFunc(MyDisplay);         //GLUT 콜백함수 등록
 glutMainLoop();                     //이벤트 루프 진입
 return 0;
}

在这里插入图片描述

参考链接

1.Visual Studio 2019配置OpenGL环境
2.VS2019 安装配置OpenGL
3.For His Kingdom #SDN #SD-WAN #NFV #Cloud #System #OpenGL #ComputerGraphics

总结

至此环境配置完毕,已经是心如止水的状态进行完了配置的记录。不知道为什么配好了,也不知道之前为啥一直不对,其实现在也不能确定是否完全配置成功,但至少测试代码可以跑通了,日后遇到什么问题再进行修改补充。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209535.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql面试必会6题经典_经典sql面试题及答案第7期

    mysql面试必会6题经典_经典sql面试题及答案第7期deletefromsalarywherenotexists(selectwidfromworkerwhereworker.wid=salary.wid)a.直接创建索引和间接创建索引直接创建:使用sql语句创建间接创建:定义主键约束或者唯一性键约束,可以间接创建索引,主键默认为唯一索引。b.普通索引和唯一性索引普通索引:CREATEINDEXmycolumn_i…

    2022年6月28日
    26
  • 数据库系统的三大范式以及BCNF范式详细讲解 (很详细,很详细,很详细)

    首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等。数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多…

    2022年4月8日
    41
  • 如何创建springboot项目[通俗易懂]

    如何创建springboot项目[通俗易懂]前言本片博客记录快速创建springboot工程的两种方式。一种是使用maven创建,一种是使用springinitializr创建。开发环境JDK1.8、IDEA、maven。SpringBoot优点可快速构建spring应用直接嵌入tomcat、jetty、undenrtow服务器(无须部署war文件)提供依赖启动器(starter)简化构建配置极大程度的自动化配置Spring和第三方库提供生产就绪功能,例如指标监控检测、外部检测极少代码生成和XML配置使用maven创建Spr

    2022年8月31日
    2
  • 第一章,安装Vmware和Ubuntu「建议收藏」

    第一章,安装Vmware和Ubuntu「建议收藏」第一章,安装Vmware和Ubuntu

    2022年4月23日
    44
  • div style clear both_that’s all right

    div style clear both_that’s all right前言:    感觉是刚过春招,又要开始秋招,对于技术渣渣、学历普通的我,忧愁再次降临。开始准备秋招路途中……来温故而知新,沉下心好好学习。貌似本人在清除浮动中第一次接触clear:left/right,平时只用到clear:both,好像也只见到这个,这就尴尬了。一、什么是浮动,标准文档流又是个啥    所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从

    2025年10月30日
    2
  • SSL及其加密通信过程「建议收藏」

    SSL及其加密通信过程「建议收藏」SSL协议和加密过程一、什么是SSL二、HTTPS和SSL三、SSL加密方式3.1对称加密与非对称加密3.1.1对称加密3.1.2非对称加密3.2具体的加密过程一、什么是SSLSSL英文全称SecureSocketLayer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密。它主要是分为两层:SSL记录协议:为高层协议提供安全封装、压缩、加密等…

    2022年6月3日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号