编译freeglut-3.0.0的Windows版静态库,及其使用示例
2015-05-14 21:45
330 查看
freeglut-3.0.0这个库咱就不介绍了,开门见山。
也可以去官网下载:http://sourceforge.net/projects/freeglut/
打开“freeglut-3.0.0\include\GL”文件夹,发现里面有4个.h文件,将其中以字母f打头的3个文件添加到工程中。
打开“freeglut-3.0.0\src”文件夹,发现里面有mswin、util之类的子文件夹,也有“fg_callbacks.c”、“fg_init.h”等等的源文件。将这里的24个以字母f打头的.c文件和5个.h文件全部添加到工程中(注意“gles_stubs.c”文件不要添加)。
打开“freeglut-3.0.0\src\mswin”文件夹,将其中的13个.c文件和1个.h文件全部添加到工程中。
打开“freeglut-3.0.0\src\util”文件夹,里面只有两个源文件,都添加到工程中。
请打开工程属性对话框,同时选中Debug版本和Release版本的工程属性(也就是选择All configurations),在C/C++选项卡下,选择Preprocessor列表:
添加几组预处理,FREEGLUT_STATIC,H***E_CONFIG_H,WINVER=0x0500,_WIN32_WINNT=0x0500,注意多个预处理之间,使用英文逗号进行分隔;第1个表示咱要编译的是静态版本的库,第2个表示咱使用了“config.h”文件,后两个表示咱要求的Windows版本至少为5.0(XP的Windows版本是5.1,Win7的Windows版本是6.1,大概……)。
添加几个头文件路径,“.”,“.\freeglut-3.0.0\include”,注意“.”路径表示工程所在文件夹,多个路径之间,使用英文逗号进行分隔。
C4018: '<' : signed/unsigned mismatch,目测不是什么严重的Warning。
找到“freeglut-3.0.0\include\GL”文件夹下的以字母f打头的3个文件,复制出来;找到生成的“freeglut_staticd.lib”和“freeglut_static.lib”这两个文件,复制出来;将这5个文件打个包,就是咱最终生成的静态库。
PS:
使用静态库的优点,就是生成的.exe文件不必附带.dll文件即可拷到别的电脑上运行,缺点自然是生成的文件尺寸比较大,不过也大不到哪去,Release版本的静态库尺寸也就0.6MB左右。如果您喜欢使用动态库,用类似的方法也可以建立,注意在库工程和测试工程中,去掉FREEGLUT_STATIC这个宏定义就行了。
1、下载源码
可以去咱的资源下载:http://download.csdn.net/detail/sugar13/8534037也可以去官网下载:http://sourceforge.net/projects/freeglut/
2、建立工程(以VC6为例)
新建工程,工程类型为Win32 Static Library,工程起名叫freeglut_static,然后解压源码包,将得到的“freeglut-3.0.0”文件夹放到工程目录下(注意如果解压后的文件夹重复了两层“freeglut-3.0.0”,请手动去掉一层)。打开“freeglut-3.0.0\include\GL”文件夹,发现里面有4个.h文件,将其中以字母f打头的3个文件添加到工程中。
打开“freeglut-3.0.0\src”文件夹,发现里面有mswin、util之类的子文件夹,也有“fg_callbacks.c”、“fg_init.h”等等的源文件。将这里的24个以字母f打头的.c文件和5个.h文件全部添加到工程中(注意“gles_stubs.c”文件不要添加)。
打开“freeglut-3.0.0\src\mswin”文件夹,将其中的13个.c文件和1个.h文件全部添加到工程中。
打开“freeglut-3.0.0\src\util”文件夹,里面只有两个源文件,都添加到工程中。
3、配置工程
在工程目录下新建一个名叫“config.h”的文件,添加到工程中。打开该文件,向其中添加如下代码:#include "util\xparsegeometry_repl.h"
请打开工程属性对话框,同时选中Debug版本和Release版本的工程属性(也就是选择All configurations),在C/C++选项卡下,选择Preprocessor列表:
添加几组预处理,FREEGLUT_STATIC,H***E_CONFIG_H,WINVER=0x0500,_WIN32_WINNT=0x0500,注意多个预处理之间,使用英文逗号进行分隔;第1个表示咱要编译的是静态版本的库,第2个表示咱使用了“config.h”文件,后两个表示咱要求的Windows版本至少为5.0(XP的Windows版本是5.1,Win7的Windows版本是6.1,大概……)。
添加几个头文件路径,“.”,“.\freeglut-3.0.0\include”,注意“.”路径表示工程所在文件夹,多个路径之间,使用英文逗号进行分隔。
4、编译工程
打开工程属性对话框,在Library选项卡下,修改输出文件的名字,Debug版本的输出名字改为“freeglut_staticd.lib”,Release版本的输出名字改为“freeglut_static.lib”,就可以批量编译工程的Debug版本和Release版本了。不管哪个版本,都是0个Error和1个Warning,这个Warning是:warningC4018: '<' : signed/unsigned mismatch,目测不是什么严重的Warning。
找到“freeglut-3.0.0\include\GL”文件夹下的以字母f打头的3个文件,复制出来;找到生成的“freeglut_staticd.lib”和“freeglut_static.lib”这两个文件,复制出来;将这5个文件打个包,就是咱最终生成的静态库。
5、测试静态库
新建一个工程,工程类型为Win32 Console Application,工程起名叫freeglut_test。将最终生成的静态库,包括的5个文件全部放置在工程目录下,然后新建源文件“freeglut_test.c”并添加到工程中,测试代码如下:#define FREEGLUT_STATIC #include "freeglut.h" #ifdef NDEBUG #pragma comment(linker,"/entry:mainCRTStartup /subsystem:Windows ") #endif void display( void ) { glutWireTeapot (0.5); glutSwapBuffers (); return; } int main( int argc, char *argv[] ) { glutInit (&argc, argv); glutInitDisplayMode (GLUT_DOUBLE); glutInitWindowSize (256, 256); glutCreateWindow ("freeglut test"); glutDisplayFunc (display); glutMainLoop(); return 0; }运行效果很好。
PS:
使用静态库的优点,就是生成的.exe文件不必附带.dll文件即可拷到别的电脑上运行,缺点自然是生成的文件尺寸比较大,不过也大不到哪去,Release版本的静态库尺寸也就0.6MB左右。如果您喜欢使用动态库,用类似的方法也可以建立,注意在库工程和测试工程中,去掉FREEGLUT_STATIC这个宏定义就行了。
相关文章推荐
- 使用CMake编译freeglut-3.0.0的静态库
- windows ffmpeg mingw编译流程及vs中的使用方法(vs2005及其以上可用)
- windows下使用thrift编译+示例+详解解决坑
- HelloWorld CMake Demo 03:CMake中构建静态库与动态库及其使用
- windows下静态库的生成和使用
- 【caffe-Windows】cifar实例编译之model的使用
- HelloWorld CMake CMake中构建静态库与动态库及其使用
- [wiki]windows下重新编译OpenCV 及其附加库 opencv_contrib, 生成Python接口
- Windows 7下使用GNU工具编译C/C++程序的环境搭建
- windows下使用IDA远程调试linux(ubuntu)下编译的程序
- Windows平台上使用ANT编译Hadoop Eclipse Plugin
- 在windows平台上使用mingw编译PYQT5
- 接上篇 【caffe-Windows】mnist实例编译之model的使用-classification(2016-08-16)
- 使用预编译(PreparedStatement)—— Login 源代码示例
- WIndows 使用VS编译 Lua5
- windows下使用Sublime Text3编译运行C++程序
- windows下使用Eclipse编译执行MapReduce程序 Hadoop2.6.0/Ubuntu
- 开源项目:windows下使用MinGW+msys编译ffmpeg
- 在Windows中使用MinGW编译X264
- windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境(转)