在Windows上建立一个静态库为过剩3.7(Building a static library f

2019-10-16 18:44发布

我一直在试图编译过剩作为静态库,而无需在运行时使用要将glut32.dll链接。 我下载了过剩的窗口源代码,但是当我尝试编译(默认),我不断收到:

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.

从我的理解,glut32.lib应该被编译并在{}源创建\ LIB \过剩\,但它不存在。

任何一种编译过剩静态库的帮助,将不胜感激。

编辑:

Makefile.win

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

lib $(OBJS) $(LIBS)

它产生的\ LIB \过剩\ glut_8x13.lib不知道的8x13是关于什么的,但是当我试图与它联系起来,我得到了一些无法解析的外部:

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)

谢谢,瑞安

Answer 1:

It looks to me like you have something pretty badly munged up in your build setup (or you're using the wrong build setup completely, such as trying to build some samples before you've built the library they use).

To build a static library, you shouldn't be running link at all. For a static library, you compile your object files, then use lib to put them together into a library. You'd use link to build a dynamic library (DLL) or an executable, but not a static library.



文章来源: Building a static library for glut 3.7 on Windows
标签: c++ c static glut