頭文件(.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上就報錯引用