首页 > 代码库 > VS2012通过makefile编译OpenGL红宝书的示例代码
VS2012通过makefile编译OpenGL红宝书的示例代码
通过创建新VC项目,然后设置一堆属性,对于懒人来说还是太复杂了。既然它自带了makefile,可以尝试下使用nmake。
需要注意的是VS2012的安装目录里面已经没有GL的头文件和库文件。这个改动应该在VS2010或者更早就已经采用了。
现在有了VS SDK。VS2010自动的SDK目录是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A,更高的版本可能使用v8.0、v8.0A,反正都在这个目录下面。这个目录下面有include、lib文件夹。lib文件根据平台不同可能还有子文件以便区分。
在命令行中执行set命令,看看include和libpath环境变量是否指向的正确的路径。检查完毕,我们可以开始了。
1. 到OpenGL的官网上去下载示例代码: http://www.opengl.org/archives/resources/code/samples/redbook/。解压目录为\redbook。
2. 到GLUT上去下载编译好的Winowds平台上的二进制文件:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip。解压目录为\glut37。
3. 修改\redbook下的Makefile.win文件。
修改
LLDLIBS = $(lflags) $(ldebug) glut.lib glu.lib opengl.lib $(guilibs)
为
LLDLIBS = $(lflags) $(ldebug) glut32.lib glu32.lib opengl32.lib $(guilibs)
修改
default : $(EXES)
为
default : $(TARGETS)
4. 如果提示找不到win32.mak。自己尝试找一份。我是从VS2010的SDK目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include中拷贝了一份到\redbook中。
5. 将\glut37\glut.h拷贝一份到编译器include路径下的GL目录中。我的是D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\gl,自己创建的。
6. 将\glut37\glut.lib和\glut37\glut32.lib拷贝到编译器lib路径下。我的是D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib。
7. 在Visual Studio 2012命令提示符下输入nmake /f Makefile.win,回车。
8. 开始输出编译信息,类似于:
cl -c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -D_X86_=1 -DWIN32 -D_WIN32 -W3 -D_WINNT -D_WIN32_WINNT=0x0500 -DNTDDI_VERSION=0x05000000 -D_WIN32_IE=0x0500 -DWINVER=0x0500 -Zi -Od -DDEBUG -DWIN32 aaindex.c
aaindex.c
link -out:aaindex.exe aaindex.obj /INCREMENTAL:NO /NOLOGO /DEBUG /DEBUGTYPE:cv glut32.lib glu32.lib opengl32.lib kernel32.lib ws2_32.lib mswsock.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib
9. 编译完成。就可以在\redbook目录下看到生成出来的exe文件了。
参考: VS2005编译OpenGL红宝书示例代码 http://www.cnitblog.com/buf/archive/2011/03/02/72909.html