• VS15 openGL 编程指南 配置库 triangle例子


    最近去图书馆借了一本书《OpenGL编程指南(原书第八版)》,今天倒腾了一天才把第一个例子运行出来。

    所以,给大家分享一下,希望能快速解决配置问题。

    一、下载需要的库文件

    首先,我们需要去该书的网站中下载相关的配置文件,书中给的是“红宝书”的官方网址:http://www.opengl-redbook.com/

    但现在已经更新至第九版,里面的库不是很完整,不适宜用于此书示例。

    所以我们要找一个第八版的资源:http://pan.baidu.com/s/1kVpv1MR

    下载完之后,我们先把main函数做一些修改,因为,原书的代码有点不完整

    int main(int argc, char** argv)
    {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGBA);
        glutInitWindowSize(512, 512);
        glutInitContextVersion(4, 3);
        glutInitContextProfile(GLUT_CORE_PROFILE);
        glutCreateWindow(argv[0]);
    
        glewExperimental = GL_TRUE;            //添加
        if (glewInit()) {
            cerr << "Unable to initialize GLEW ... exiting" << endl;
            exit(EXIT_FAILURE);
        }
        init();
        glutDisplayFunc(display);
        glutMainLoop();
    
    }

    还要在工程目录下创建两个文件

     triangles.frag

    #version 430 core
    
    out vec4 fColor;
    
    void
    
    main()
    
    {
    
    fColor = vec4(0.0, 0.0, 1.0, 1.0);
    
    }

     triangles.vert

    #version 430 core
    
    layout(location = 0) in vec4 vPosition;
    
    void
    
    main()
    
    {
    
    gl_Position = vPosition;
    
    }

    二、配置相关的库

    先展示一下刚刚下载的压缩文件

    其中include/GL/   下面是有9个文件的,很全。如果下载的是第九版的话那么就只有两个文件,不完整。

    确定文件齐全之后,我们开始配置相关的库。

    在你的项目-》属性-》

    在包含目录中添加进你下载的那个文件夹中的include目录:比如我的是:D:新建文件夹新建文件夹新建文件夹新建文件夹openGLoglpg-8th-editioninclude

    在库目录中添加进你下载的那个文件夹中的lib目录:比如我的是:D:新建文件夹新建文件夹新建文件夹新建文件夹openGLoglpg-8th-editionlib

    然后再把下面这个设置一下:

    这样在debug或rrelease编译模式下都能把libcmtd.lib这个库忽略掉

    最后一点,VS2015更改了很多标准库的链接方式和宏定义,而红宝书第八版中用到的freeglut库中用到了这些标准库和宏。所以如果报_sscanf或者__iob_func是无法解析的外部符号之类的错误,你可以打开如下设置:

    点开那个下拉,如果你有低于15的版本,那么选那个低版本的,如果只有15版本的话,请往下看

    来自:https://blog.csdn.net/csdn1027192411/article/details/52064732 的解决方案,如下:

    然后在工程的cpp文件首,插入如下代码即可

    #if _MSC_VER>=1900
    #include "stdio.h"
    _ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);
    #ifdef __cplusplus
    extern "C"
    #endif
    FILE* __cdecl __iob_func(unsigned i) {
        return __acrt_iob_func(i);
    }
    #endif /* _MSC_VER>=1900 */

    到现在应该就可以运行了。

    如果不想用提供的库,想要自己下载,也可以

    这里有完整的OpenGL所需的库:https://www.cnblogs.com/zpcdbky/p/6724772.html

    不过,第八版的资料里的include里面也很完整~

    感谢您的阅读,生活愉快~

  • 相关阅读:
    Oracle第一课
    Web前端试题
    E
    Kingdom of Black and White
    D. Let's Go Hiking
    2021牛客寒假 第一场
    Codeforces Round #691 (Div. 2)
    CF1461D
    CF1461B
    浙财16th校赛 F因子
  • 原文地址:https://www.cnblogs.com/lv-anchoret/p/8729384.html
Copyright © 2020-2023  润新知