在Windows上为glut 3.7构建静态库

我一直在尝试将glut编译为静态库,而不必在运行时链接glut32.dll。 我下载了过剩的windows源代码但是当我尝试编译时(默认),我不断得到:

Making in glut subdirectory... link /INCREMENTAL:NO /NOLOGO -entry:_DllMainCRTStartup@12 -dll -out:glut32.dll -def:glut.def glut_8x13.obj glut_9x15.obj glut_bitmap.obj glut_bwidth.obj glut_cindex.obj glut_cmap.obj glut_cu rsor.obj glut_dials.obj glut_dstr.obj glut_event.obj glut_ext.obj glut_fullscrn.obj glut_gamemode.obj glut_get.obj glut_hel10.obj glut_hel12.obj glut_hel18.obj glut_init.obj glut_input.obj glut_joy.ob j glut_key.obj glut_keyctrl.obj glut_keyup.obj glut_mesa.obj glut_modifier.obj glut_mroman.obj glut_overlay.obj glut_roman.obj glut_shapes.obj glut_space.obj glut_stroke.obj glut_swap.obj glut_swidth. obj glut_tablet.obj glut_teapot.obj glut_tr10.obj glut_tr24.obj glut_util.obj glut_vidresize.obj glut_warp.obj glut_win.obj glut_winmisc.obj win32_glx.obj win32_menu.obj win32_util.obj win32_winproc.o bj win32_x11.obj opengl32.lib glu32.lib winmm.lib kernel32.lib ws2_32.lib mswsock.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib LINK : fatal error LNK1104: cannot open file 'glut32.lib' NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x450' Stop. NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.EXE"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.EXE"' : return code '0x2' Stop. 

根据我的理解,应该在{source} \ lib \ glut \中编译和创建glut32.lib,但它不存在。

任何有关过剩编译静态库的帮助都将受到赞赏。

编辑:

Makefile.win中

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

lib $(OBJS) $(LIBS)

它生成\ lib \ glut \ glut_8x13.lib不确定8×13是什么,但是当我尝试链接它时,我得到了一些未解析的外部:

 GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutCreateWindow@4 referenced in function "protected: __thiscall GlobalDecl::OpenGLConte xt::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext@GlobalDecl@@IAE@II@Z) GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitWindowSize@8 referenced in function "protected: __thiscall GlobalDecl::OpenGLCon text::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext@GlobalDecl@@IAE@II@Z) GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitWindowPosition@8 referenced in function "protected: __thiscall GlobalDecl::OpenG LContext::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext@GlobalDecl@@IAE@II@Z) GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitDisplayMode@4 referenced in function "protected: __thiscall GlobalDecl::OpenGLCo ntext::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext@GlobalDecl@@IAE@II@Z) GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInit@8 referenced in function "protected: __thiscall GlobalDecl::OpenGLContext::Open GLContext(unsigned int,unsigned int)" (??0OpenGLContext@GlobalDecl@@IAE@II@Z) GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutSwapBuffers@0 referenced in function "protected: void __thiscall GlobalDecl::OpenGLC ontext::_executeTest(class GlobalDecl::UnitTest &)" (?_executeTest@OpenGLContext@GlobalDecl@@IAEXAAVUnitTest@2@@Z) 

谢谢,瑞恩

它看起来像你在构建设置中有一些非常糟糕的东西(或者你完全使用了错误的构建设置,例如在构建他们使用的库之前尝试构建一些样本)。

要构建静态库,您根本不应该运行link 。 对于静态库,您可以编译目标文件,然后使用lib将它们放在一个库中。 您可以使用link来构建动态库(DLL)或可执行文件,但不能使用静态库。