vs自带的OpenGL为1.1版本,太老了。
1,编译glut
https://www.opengl.org/resources/libraries/glut/glut37.zip
查看生成路径,可以改为vs安装目录的lib和include。
2,
找到win32.mak位置。
改为!include <C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\win32.mak>
3,
因为一开始dll并不依赖glut32.lib, 但是生成时glut32.lib依赖了自己, 所以容易产生glut32.lib库找不到的错误
$(link) $(LFLAGS) -out:$(GLUTDLL) -def:glut.def $(OBJS) $(LIBS)改为
$(link) $(LFLAGS) -out:$(GLUTDLL) -def:glut.def $(OBJS) $(LIBS) -NODEFAULTLIB:$(GLUTLIB)
同上找到mui下的makefile.win修改win32.mak
全部改改改!!!
4,
问题不在chess.c文件。
修改particle.c的timedelta函数如下:
#if defined(_WIN32)
#include <sys/timeb.h>
#else
#include <limits.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/times.h>
#endif
float
timedelta(void)
{
static long begin = 0;
static long finish, difference;
#if defined(_WIN32)
static struct timeb tb;
ftime(&tb);
finish = tb.time*1000+tb.millitm;
#else
static struct tms tb;
finish = times(&tb);
#endif
difference = finish - begin;
begin = finish;
return (float)difference/(float)1000; /* CLK_TCK=1000 */
}
5,
以管理员身份运行C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat自动为vs设置环境变量,然而没效果。
查看chess的makefile.win看不懂。
打开chess上一级目录的makefile.win去掉chess.dir使其不编译chess。
搞了一下午中午编译完全了。
前面glutwin32.mak的设置会自动把glut.h和生成的glut32.lib、glut32.dll复制到指定vs使用的目录下。
去吃晚饭了,回来找个例子试试。