头文件(.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上就报错引用