未定义引用`inflate'

Ste*_*cto 16 c++ static-libraries

试图链接我用MinGW构建的静态assimp库.以下是我得到的错误:

H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(BlenderLoader.cpp.obj):BlenderLoader.cpp :(.text + 0xd91):未定义引用inflateInit2_' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(BlenderLoader.cpp.obj):BlenderLoader.cpp:(.text+0xe06): undefined reference to膨胀'H:\ ovgl\ovgl. ..\dependencies\Assimp\lib\libassimp.a(BlenderLoader.cpp.obj):BlenderLoader.cpp :(.text + 0xf72):未定义引用inflateEnd' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XGLLoader.cpp.obj):XGLLoader.cpp:(.text+0x76c): undefined reference toinflateInit2_'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(XGLLoader.cpp.obj):XGLLoader.cpp :(.text + 0x7ff):对inflate' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XGLLoader.cpp.obj):XGLLoader.cpp:(.text+0x953): undefined reference toinflateEnd'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(XFileParser )的未定义引用.cpp.obj):XFileParser.cpp :(.text + 0x9ac):未定义的引用inflateInit2_' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp:(.text+0xd5c): undefined reference to膨胀'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser .cpp :(.text + 0xed2):对inflateReset' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp:(.text+0xef8): undefined reference toinflateSetDictionary的未定义引用'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp :(.text + 0xf52):未定义的引用inflateEnd' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp:(.text+0x1b4a): undefined reference toinflateInit2_'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp :(.text + 0x1efa):对inflate' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp:(.text+0x2070): undefined reference toinflateReset的未定义引用'H:\ ovgl\ov gl ...\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp :(.text + 0x2096):对inflateSetDictionary' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(XFileParser.cpp.obj):XFileParser.cpp:(.text+0x20f0): undefined reference toinflateEnd'H:\ ovgl\ovgl ...\dependencies \的未定义引用Assimp\lib\libassimp.a(unzip.c.obj):unzip.c :(.text + 0x1935):对inflateInit2_' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(unzip.c.obj):unzip.c:(.text+0x19b8): undefined reference toget_crc_table的未定义引用'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a (unzip.c.obj):unzip.c :(.text + 0x1ec2):未定义的引用crc32' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(unzip.c.obj):unzip.c:(.text+0x1f67): undefined reference to膨胀'H:\ ovgl\ovgl ...\dependencies\Assimp\lib\libassimp.a(unzip.c.obj) :unzip.c :(.text + 0x1fb5):对crc32' H:\ovgl\ovgl\.\..\dependencies\Assimp\lib\libassimp.a(unzip.c.obj):unzip.c:(.text+0x2245): undefined reference toinflateEnd的未定义引用'

Mar*_*ett 22

这些是zlib库中的函数.你有zlib.h和zlib库(.a或.lib)和路径设置正确

  • -lz在Linux下. (14认同)
  • @DragonLord发表非常有用的评论.它调用zlib,但在Linux上,惯例是在库上使用前缀'lib'.因此,该文件应为libz,链接器标志为-lz (3认同)
  • 我有同样的问题,但在Windows上使用MinGW尝试构建JLint,我尝试手动设置我的libz.dll.a或libz.a的路径,但我仍然得到这些链接器错误.有人有主意吗? (2认同)