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

这篇具有很好参考价值的文章主要介绍了【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文章来源地址https://www.toymoban.com/news/detail-467403.html

到了这里,关于【OPENGL问题】Visual Studio添加第三方库——以32位和64位glut库为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyCharm第三方库配置--添加镜像

    PyCharm安装后,默认的是python官方的第三方库下载地址PyPI(Python Package Index),PyPI覆盖的库不一定好下载,使用国内的镜像源稍微好下载一些。 Ps:首先在cmd中检查(输入pip list)第三方库是否存在,这儿不存在,即,没有可用的库 添加多个镜像源后,下载时会从所有添加的镜像

    2024年02月09日
    浏览(39)
  • Android Studio查看第三方库依赖树

    在Android开发过程中,我们或多或少都会引入第三方库,引入的库越多,越容易产生库之间的依赖冲突,所以我们今天一起来了解Android Studio查看第三方库依赖树。 下面就拿我遇到的问题还原一下: 之前接人容联客服系统的时候,集成完成后进入客服页面发生闪退,我们回顾

    2024年02月08日
    浏览(39)
  • Android Studio连接使用第三方模拟器

           使用Android Studio自带的模拟器,第一会比较卡,第二配置容易出错,第三,自带的模拟器很吃电脑配置。如果电脑配置较差,会比较耽误事。所以为例解决上面三个问题,可以在电脑上按照第三方手机模拟器,例如:夜神模拟器、雷电模拟器、MUMU模拟器等等,不管是

    2024年01月15日
    浏览(39)
  • 【Android Studio】第三方库 图表(MPAndroidChart)使用

    项目目录-app-build.gradle 项目目录-app-setting.gradle ​ 该类是图表的控件,类似于按键、图片,是从 xml 文件中通过 id 获取到的。 获取/创建 常用方法 方法名 描述 chart.setDrawBorders( boolean ) 是否显示图表边界,true:显示,默认 false chart.setScaleEnabled( boolean ) 是否使能缩放,true:使

    2024年02月06日
    浏览(43)
  • Android Studio引用第三方库的方式

    title: 大小端详解 date: 2023-06-06 21:01:24 comments: true #是否可评论 toc: true #是否显示文章目录 categories: #分类 - gradle - android studio tags: #标签 - gradle - android studio summary: android stduio 导入第三方库方式 这里描述的第三方库文件格式指的是 so aar so库介绍一种方法 Aar介绍两种方法 libs目录

    2024年02月08日
    浏览(40)
  • 如何为微信小程序添加第三方支付功能

    随着微信小程序的普及和应用,越来越多的商家希望在小程序中接入第三方支付功能,以提高用户购买体验和支付安全性。本文将详细介绍如何为微信小程序添加第三方支付功能,并提供具体的开发流程及注意事项。 一、什么是第三方支付 第三方支付平台是指一种网上支付

    2024年02月07日
    浏览(56)
  • keycloak~为keycloak-services项目添加第三方模块(首创)

    我们在对keycloak框架中的核心项目 keycloak-services 进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我们直接添加infinispan-core引用之后,在启动keycloak进出错了,提示我们没有找到infinispan.Cache,于是我尝试了如下方法,最终解决

    2024年02月08日
    浏览(27)
  • Android Studio 如何连接第三方模拟器(如:雷电、MuMu)

    一、基础软件信息: 1.Android Studio的版本信息:  2.第三方模拟器版本信息,以MuMu为例演示:  二、实操部分 1.同时打开AS 和 模拟器(mum),如图: 2.找到mum在电脑上的安装的径,然后在此路径下打开DOS窗口。具体的操作如下: a.在桌面上找到模拟器的启动图标; b.鼠标右键

    2024年02月15日
    浏览(38)
  • Android 13.0 添加自定义服务,并生成jar给第三方app调用

    在13.0系统产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 添加

    2024年02月05日
    浏览(56)
  • Android 14.0 添加自定义服务,并生成jar给第三方app调用

    在14.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 在

    2024年04月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包