VS2015 配置OpenGL

头文件(.h):放到VS的安装目录下\Visual Studio\VC\include\GL文件夹中,没有Gl文件夹就新建一个函数


库文件(.lib):放到VS安装目录下\Visual Studio \VC\lib 文件夹中.net


动态连接库文件(.dll):放到C:\WINDOWS\system32下,64位系统就放到C:\Windows\SysWOW64下。code


在这里比较纠结的是出现了这样的问题:blog

错误 LNK2019 没法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数
_glutCreateWindow_ATEXIT_HACK@4中被引用
SOpenGL  C:\\...\\glut-1\SOpenGL\SOpenGL.obj 1

错误 LNK1120 1 个没法解析的外部命令
SOpenGL C:\\...\\glut-1\Debug\SOpenGL.exe 1

查了很久,发现glut.h文件里有解释:开发

Note that the __glut*WithExit routines should NEVER be called directly.
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK
在#include <GL/glut.h>前加上 #define GLUT_DISABLE_ATEXIT_HACK便可。get

还有一个坑就是glaux.lib的问题:it

glaux.lib(tk.obj) : error LNK2019: 没法解析的外部符号 _sscanf
该符号在函数 _GetRegistrySysColors@8 中被引用

缘由及解决办法是:io

在vs2015工程选项,属性->连接器->输入->附加依赖项里面添加legacy_stdio_definitions.lib便可(就是旧版本stdio.h的意思)。
出现这个问题的缘由是vs2015默认编译时将许多标准库采用内联方式处理,于是没有能够连接的标准库文件,因此要专门添加标准库文件来连接标准库中的函数。编译

记下来总结一下,具体的缘由解释我也不怎么理解,参考了以下的连接:
在Visual Studio2015中搭建OpenGL开发环境(win10)
同一个opengl程序在vs2010上能够使用 在vs2015上就报错引用

相关文章
相关标签/搜索