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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 语音芯片,语音合成芯片,嵌入式语音合成软件的区别

    语音芯片,语音合成芯片,嵌入式语音合成软件的区别在当前科技发达,越来越智能的时代,追求产品体验更好,人机交互带有语音播报越来越成为一种时尚。无论是家用产品,还是室外公共设备,市场上带有语音提示和语音预警的产品也与日俱增,越来越受到消费者的青睐,语音功能让产品更智能,极大的增强了用户的产品体验。除了手机,平板等智能设备外,在智能家居等产品上要实现语音播报功能,有以下3种解决方案,我们逐一进行介绍。

    2022年6月26日
    25
  • pdf下载插件tcpdf

    pdf下载插件tcpdfThinkphp框架引用tcpdf一:引入tcpdf整个文件夹到项目如下目录/ThinkPHP/Library/Vendor/tcpdftcpdfv6.2.12版本百度网盘下载链接:http://pan.baidu.com/s/1kVhrQoJ密码:bfh4二:简单的使用 三:关于下载PDF时,插件把中文文件名屏蔽了的解决方法四:把tcpdf中的插件引入到项目中

    2025年10月7日
    2
  • gimp教程:gimp界面介绍「建议收藏」

    gimp教程:gimp界面介绍「建议收藏」GIMP(跨平台图像处理程序)是一个开发源代码的光栅与图像编辑的先进功能,关于GIMP的界面,初学者都了解吗?下面是小编整理的关于gimp教程中gimp界面介绍,快来分享吧!gimp界面介绍:gimp图像窗口Gimp图像窗口是打开图形图像文件时图像显示的窗口,关闭窗口右上角的关闭按钮的话程序也将随之关闭。如下图所示,其窗口中包含下面几个元素:A、居于最上面的标题栏,最左面是Gimp图标(icons),中间是图像名,如果是刚开始打开无图像的话显示”GNUImageManipulatio..

    2022年6月15日
    36
  • linux中解压rar文件

    linux中解压rar文件linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm下载之后进行解压之后,进入rar目录,运行make指令进行安装:[root@localhostrar]#lsacknow.txtlicense.txtorder.htmrarfiles.lstrar.txt

    2022年7月15日
    12
  • 深入理解Java类型信息(Class对象)与反射机制

    深入理解Java类型信息(Class对象)与反射机制【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)http://blog.csdn.net/javazejian/article/details/70768369出自【zejian的博客】关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解

    2022年6月9日
    28
  • python 内建模块_simulink常用模块

    python 内建模块_simulink常用模块Python常用内建模块datetime处理日期和时间的标准库。注意到datetime是模块,datetime模块还包含一个datetime类,通过fromdatetimeimportdatetime导入的才是datetime这个类。如果仅导入importdatetime,则必须引用全名datetime.datetime。datetime.now()返回当前日期和时间,其类型是…

    2025年7月10日
    3

发表回复

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

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