可能你会遇到:
error LNK2001: unresolved external symbol ___glutInitWithExit@12
error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8
这个问题,网上有很多解决方法,我的方法也有,不过加上我的解释。
其实我也不用多解释,打开GLUT.H你会发现这个剪短的注释:
/*
......
Note that the __glut*WithExit routines should NEVER be called directly.
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
可是关于这个宏,我查了还是找不到哪来的。
而且还有:
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
像是这个,一开始没有定义那个宏,所以为true(当然,我是WIN32系统, true && true), 当确没有加上下面那一句,就是错误了。
为啥没加呢,这个我也不知道。你加上那个宏,就是false( true && false), 但却能运行,我不知道怎么说了= =
知道的请告诉我。或许答案就是注释所说的:应该从不会马上就调用,至于为什么,注释没有啊 - -