freeglut是glut库的开源替代方案,想要利用freeglut来辅助完成OpenGL的编程,首先,要在自己电脑上配置好其编程环境。以下为我的环境配置详解。
freeglut的下载
这里有两种办法,一种是下载源码自己编译,一种是直接下压缩包。
freeglut的配置
将文件拷贝到相应目录下,根据自己想要编32位还是64位版本的程序来选择对应的路径。
.h文件
将\include\GL
目录下的所有.h
文件复制到 Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\GL
目录下;
.lib文件
32位版本
将
\lib\x86\
中的freeglut.lib
文件复制到Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28610\lib
目录下;64位版本
将
\lib\x64
中的freeglut.lib
文件复制到Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28610\lib\x64
目录下;
.dll文件
32位版本
将
\bin\x86\freeglut.dll
文件复制c:\Windows\SysWOW64
目录下;64位版本
将
\bin\x64\
中的freeglut.dll
文件复制到c:\Windows\System32
目录下;
测试安装是否成功
创建一个空白的console工程,创建一个C++文件,拷入代码运行。
提供一个简单的glut程序:
1 |
|
若能运行成功,会显示OpenGL的版本。
问题
在第一次运行VS跑程序时,报错LINK: fatal error LNK1104 无法打开文件"freeglut.lib"
,检查了lib、dll文件的路径后并没发现问题,上网查询后发现要进行预处理。
解决办法:
【属性】->【C/C++】->【预处理器】->【预处理器定义】,点击【编辑】新增一个NDEBUG
。
对于h、lib和dll文件的理解
三者区别
.h
:头文件,是函数声明的接口,仅仅是接口(与包含实现的.cpp
和.cxx
等相反)
.lib
:静态库,可能包含代码或仅链接到动态库(即动态链接的导入库)。不管是哪种方式,它都是您与程序链接的编译代码。静态库在链接时包含在.exe
中。
.dll
:动态库,有函数的可执行代码。就像静态文件一样,但您需要将它与.exe
文件一起部署,因为它是在运行时加载的。
.h
是编译时需要,.lib
是链接时需要,.dll
是运行时需要。
说明
如果程序是静态链接,只需.h
和.lib
文件
如果程序是动态链接,则lib
作为导入库,其中没有函数实现代码,只有函数的地址表等信息,方便在.dll
文件中找到函数的实现,起到桥梁的作用。