【OPENGL问题】Visual Studio添加第三方库——以32位和64位glut库为例

这里简单记录如何在Visual Studio添加第三方库——以32位和64位glut库为例

参考了KingRumn的博文:https://blog.csdn.net/KnownAll/article/details/17758847

一、GLUT库

1.1 GLUT库介绍

GLUT(英文全写:OpenGL Utility Toolkit)是一个处理OpenGL程式的工具库,负责处理和底层操作系统的呼叫以及I/O。我在此之前也一直以为只有32位版本,现在发现还有64位版本。

1.2 GLUT库下载

1.2.1 官方下载源(只有32位版本):

https://user.xmission.com/~nate/glut/glut-3.7.6-bin.zip
下载解压后,会得到5个文件“glut.def” “glut.h” “glut32.dll” “glut32.lib” “README-win32.txt”
其中"glut.h" “glut32.dll” "glut32.lib"对我们有用
(PS:glut库最新版本3.7.6已经是2001年发布的,很古老了)

glut库官方页面:https://www.opengl.org/resources/libraries/glut/glut_downloads.php
很多博客中会提及从这个网页中下载库文件:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
从这个链接中下载会得到五个文件"glut.h" “glut32.dll” “glut32.lib” “glut.dll” “glut.lib”

那么"glut32.dll" “glut32.lib” “glut.dll” "glut.lib"这些文件间有什么区别呢?
在相关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.”

简单来说:
“glut32.dll” "glut32.lib"用于微软的win32平台,“glut.dll” “glut.lib"用于SGI平台
此处我们的编译环境是x64 和x86环境,所以只需要"glut32.dll” "glut32.lib"这两个文件

1.2.2 非官方下载源(有32位和64位版本):

https://download.csdn.net/download/weixin_43354298/85003078
这是glut3.7.6,里面包含32bit和64bit。

二、在VS2019下配置glut库

2.1 开发32位程序配置

开发环境:win10 64bit专业版 + 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放在这个文件夹中(引用时在.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 运行包含库文件的工程

新建一个空项目,添加.cpp文件,将下面的代码拷贝进去,编译运行,一条直线就出来了。本来还需要包含opengl.h 和glu.h的,这两个文件已经在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("测试");
 
	init();
	glutDisplayFunc(line);
	glutMainLoop();
}

2.2 开发64位程序配置

开发环境:win10 64bit专业版 + 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放在这个文件夹中(这个和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位模式

其次, 右击工程–>属性–>链接器–>输入–>附加依赖项里添加:glut64.lib

2.2.2步也可以在.cpp文件开头添加 #pragma comment(lib,“glut64.lib”)
我理解2.2.2步就是把glut64.lib库文件链接到工程中来(可能工程自己找不到)

最后, 大功告成,编译,生成,执行

2.3 如何将库文件放在工程文件下

2.3.1 在工程文件夹下新建“include”和“lib”文件夹并放入相应文件

将"glut.h"放入“include”文件夹中

将对应的"glut32.lib"或"glut64.lib"放入“lib文件夹中”

将"glut32.dll"或"glut64.dll"放入解决方案的“debug”文件夹中

注意,一定要放到解决方案的“debug”文件夹中,也就是含有你的.exe文件的文件夹

2.3.3 进行VS的项目配置

首先,右键项目,属性->配置属性->C/C+±>常规,在常规中找到附加包含目录,选中你刚才创建的“include”文件夹

同样,在属性->配置属性->链接器->常规,在常规中找到附加库目录,选中该你刚才创建的“lib”文件夹

接着,在属性->配置属性->链接器->输入,在输入中找到附加依赖项,加上那几个lib文件的名字
(这步也可以通过在在.cpp文件开头添加 #pragma comment(lib,“XX.lib”))

(1) 2.3步和之前2.1、2.2的步骤类似,只不过自己定义了新的“include”和“lib”文件夹,然后放入相应的.h文件和.dll文件
(2) 按照2.3步操作完后,如果切换成release编译模式,则还需要进行同样的一遍操作
(3) 如何需要经常用到某些第三方库的话,可以参考这篇博客:https://blog.csdn.net/blood_jiumu/article/details/109197923

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值