這里簡(jiǎn)單記錄如何在Visual Studio添加第三方庫(kù)——以32位和64位glut庫(kù)為例
參考了KingRumn的博文:https://blog.csdn.net/KnownAll/article/details/17758847
一、GLUT庫(kù)
1.1 GLUT庫(kù)介紹
GLUT(英文全寫:OpenGL Utility Toolkit)是一個(gè)處理OpenGL程式的工具庫(kù),負(fù)責(zé)處理和底層操作系統(tǒng)的呼叫以及I/O。我在此之前也一直以為只有32位版本,現(xiàn)在發(fā)現(xiàn)還有64位版本。
1.2 GLUT庫(kù)下載
1.2.1 官方下載源(只有32位版本):
https://user.xmission.com/~nate/glut/glut-3.7.6-bin.zip
下載解壓后,會(huì)得到5個(gè)文件“glut.def” “glut.h” “glut32.dll” “glut32.lib” “README-win32.txt”
其中"glut.h" “glut32.dll” "glut32.lib"對(duì)我們有用
(PS:glut庫(kù)最新版本3.7.6已經(jīng)是2001年發(fā)布的,很古老了)
glut庫(kù)官方頁(yè)面:https://www.opengl.org/resources/libraries/glut/glut_downloads.php
很多博客中會(huì)提及從這個(gè)網(wǎng)頁(yè)中下載庫(kù)文件:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
從這個(gè)鏈接中下載會(huì)得到五個(gè)文件"glut.h" “glut32.dll” “glut32.lib” “glut.dll” “glut.lib”
那么"glut32.dll" “glut32.lib” “glut.dll” "glut.lib"這些文件間有什么區(qū)別呢?
在相關(guān)readme文件中有說明:
“There are two versions of the library. One for use with the Microsoft implementation of OpenGL (opengl32) and one for use with the SGI implementation of OpenGL (opengl). The trailing ‘32’ indicates a Microsoft implementation. Therefore, if you are using opengl32.dll, use glut32.dll and if you are using opengl.dll use glut.dll.”
簡(jiǎn)單來說:
“glut32.dll” "glut32.lib"用于微軟的win32平臺(tái),“glut.dll” “glut.lib"用于SGI平臺(tái)
此處我們的編譯環(huán)境是x64 和x86環(huán)境,所以只需要"glut32.dll” "glut32.lib"這兩個(gè)文件
1.2.2 非官方下載源(有32位和64位版本):
https://download.csdn.net/download/weixin_43354298/85003078
這是glut3.7.6,里面包含32bit和64bit。
二、在VS2019下配置glut庫(kù)
2.1 開發(fā)32位程序配置
開發(fā)環(huán)境:win10 64bit專業(yè)版 + vs2019
2.1.1 先給文件找位置:“glut.h” “glut32.dll” “glut32.lib”
將glut.h放在此目錄下:
在X:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include目錄下新建文件夾,命名為GL,glut.h放在這個(gè)文件夾中(引用時(shí)在.cpp文件中寫上 #include<GL/glut.h>)
將glut32.lib放在:
X:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x86
將glut32.dll放在:
C:\Windows\SysWOW64
2.1.2 運(yùn)行包含庫(kù)文件的工程
新建一個(gè)空項(xiàng)目,添加.cpp文件,將下面的代碼拷貝進(jìn)去,編譯運(yùn)行,一條直線就出來了。本來還需要包含opengl.h 和glu.h的,這兩個(gè)文件已經(jīng)在glut.h 中包含了,所以不是必須的。
!注意,配置管理器選擇x86,即32位模式!
#include <GL/glut.h>
void init(void)
{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,200.0,0.0,100.0);
}
void line(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glBegin(GL_LINES);
glVertex2i(100,0);
glVertex2i(0,75);
glEnd();
glFlush();
}
void main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,300);
glutCreateWindow("測(cè)試");
init();
glutDisplayFunc(line);
glutMainLoop();
}
2.2 開發(fā)64位程序配置
開發(fā)環(huán)境:win10 64bit專業(yè)版 + vs2019
2.2.1 先給文件找位置:“glut.h” “glut64.dll” “glut64.lib”
將glut.h放在此目錄下:
在X:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include目錄下新建文件夾,命名為GL,glut.h放在這個(gè)文件夾中(這個(gè)和32位一樣)
將glut64.lib放在:
X:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64
將glut64.dll放在:
C:\Windows\System32
2.2.2 跟32位的一樣,建工程,拷貝代碼,注意下面的步驟就不一樣了。
首先,配置管理器選擇x64,即64位模式
其次, 右擊工程–>屬性–>鏈接器–>輸入–>附加依賴項(xiàng)里添加:glut64.lib
2.2.2步也可以在.cpp文件開頭添加 #pragma comment(lib,“glut64.lib”)
我理解2.2.2步就是把glut64.lib庫(kù)文件鏈接到工程中來(可能工程自己找不到)
最后, 大功告成,編譯,生成,執(zhí)行
2.3 如何將庫(kù)文件放在工程文件下
2.3.1 在工程文件夾下新建“include”和“l(fā)ib”文件夾并放入相應(yīng)文件
將"glut.h"放入“include”文件夾中
將對(duì)應(yīng)的"glut32.lib"或"glut64.lib"放入“l(fā)ib文件夾中”
將"glut32.dll"或"glut64.dll"放入解決方案的“debug”文件夾中
注意,一定要放到解決方案的“debug”文件夾中,也就是含有你的.exe文件的文件夾
2.3.3 進(jìn)行VS的項(xiàng)目配置
首先,右鍵項(xiàng)目,屬性->配置屬性->C/C+±>常規(guī),在常規(guī)中找到附加包含目錄,選中你剛才創(chuàng)建的“include”文件夾
同樣,在屬性->配置屬性->鏈接器->常規(guī),在常規(guī)中找到附加庫(kù)目錄,選中該你剛才創(chuàng)建的“l(fā)ib”文件夾
接著,在屬性->配置屬性->鏈接器->輸入,在輸入中找到附加依賴項(xiàng),加上那幾個(gè)lib文件的名字
(這步也可以通過在在.cpp文件開頭添加 #pragma comment(lib,“XX.lib”))文章來源:http://www.zghlxwxcb.cn/news/detail-467403.html
(1) 2.3步和之前2.1、2.2的步驟類似,只不過自己定義了新的“include”和“l(fā)ib”文件夾,然后放入相應(yīng)的.h文件和.dll文件
(2) 按照2.3步操作完后,如果切換成release編譯模式,則還需要進(jìn)行同樣的一遍操作
(3) 如何需要經(jīng)常用到某些第三方庫(kù)的話,可以參考這篇博客:https://blog.csdn.net/blood_jiumu/article/details/109197923文章來源地址http://www.zghlxwxcb.cn/news/detail-467403.html
到了這里,關(guān)于【OPENGL問題】Visual Studio添加第三方庫(kù)——以32位和64位glut庫(kù)為例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!