VS2013编译GLUI

时间:2020-12-18 16:27:56

VS2013编译GLUI

vs自带的OpenGL为1.1版本,太老了。

1,编译glut

https://www.opengl.org/resources/libraries/glut/glut37.zip

查看生成路径,可以改为vs安装目录的lib和include。

VS2013编译GLUI

2,

VS2013编译GLUI

VS2013编译GLUI

找到win32.mak位置。

VS2013编译GLUI

改为!include <C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\win32.mak>

3,

VS2013编译GLUI

因为一开始dll并不依赖glut32.lib, 但是生成时glut32.lib依赖了自己, 所以容易产生glut32.lib库找不到的错误

VS2013编译GLUI

$(link) $(LFLAGS) -out:$(GLUTDLL) -def:glut.def $(OBJS) $(LIBS)改为

$(link) $(LFLAGS) -out:$(GLUTDLL) -def:glut.def $(OBJS) $(LIBS) -NODEFAULTLIB:$(GLUTLIB)

VS2013编译GLUI

同上找到mui下的makefile.win修改win32.mak

VS2013编译GLUI

VS2013编译GLUI

VS2013编译GLUI

全部改改改!!!

4,

VS2013编译GLUI

问题不在chess.c文件。

VS2013编译GLUI

修改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,

VS2013编译GLUI

以管理员身份运行C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat自动为vs设置环境变量,然而没效果。

VS2013编译GLUI

查看chess的makefile.win看不懂。

打开chess上一级目录的makefile.win去掉chess.dir使其不编译chess。

VS2013编译GLUI

搞了一下午中午编译完全了。

前面glutwin32.mak的设置会自动把glut.h和生成的glut32.lib、glut32.dll复制到指定vs使用的目录下。

去吃晚饭了,回来找个例子试试。