MinGW MinizipResourceProvider linking issues
Posted: Thu May 24, 2012 22:57
Hello all.
I'd like to build the latest CEGUI HG snapshot using MinGW and CMake. Compilation goes fine, but I have some (well, actually, only one now) linker issues.
First, I got a few undefined reference errors in PCRERegexMatcher.cpp.obj, but after doing a quick search, I was able to eliminate it by adding "#define PCRE_EXP_DECL extern" before "#include <pcre.h>" in PRERegexpMatcher.h. I'm not sure what is this, since I honestly know nothing about PCRE, but it worked.
After this, I got undefined reference erros again, but this time in MinizipResourceProvider.cpp.obj, and no matter what I did, I'm stuck.
Here are the exact errors:
First, I've tried to link against the ZLib version included with the dependencies pack (the pack itself is also the latest Mercurial snapshot), nothing changed. After searching around, I found basically nothing regarding these calls. Well, I found only one forum post where the poster had similiar linker errors when trying to compile the ZLib windows api. They managed to solve this by adding "#define ZLIB_WINAPI" before including zlib. So I tried to add this line before "#include "minizip/unzip.h"" in MinizipResourceProvider.cpp, but nothing happened.
What should I do next? Do I really need the Minizip resource provider? I'm going to use CEGUI with Ogre, and Ogre has its own zip reader, so can I just use that to load CEGUI-related resources from zip files?
Also, what is that PCRE stuff? Do I really need that? CMAKE says it's needed for "editbox string validation", but again, I'm not sure what is this for.
Thank you in advance.
I'd like to build the latest CEGUI HG snapshot using MinGW and CMake. Compilation goes fine, but I have some (well, actually, only one now) linker issues.
First, I got a few undefined reference errors in PCRERegexMatcher.cpp.obj, but after doing a quick search, I was able to eliminate it by adding "#define PCRE_EXP_DECL extern" before "#include <pcre.h>" in PRERegexpMatcher.h. I'm not sure what is this, since I honestly know nothing about PCRE, but it worked.
After this, I got undefined reference erros again, but this time in MinizipResourceProvider.cpp.obj, and no matter what I did, I'm stuck.
Here are the exact errors:
Code: Select all
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0xe0a): undefined reference
to `_imp__unzLocateFile@12'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0xe61): undefined reference
to `_imp__unzGetCurrentFileInfo@32'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0xe7d): undefined reference
to `_imp__unzOpenCurrentFile@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0xeb0): undefined reference
to `_imp__unzReadCurrentFile@12'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0xecc): undefined reference
to `_imp__unzCloseCurrentFile@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0x1767): undefined referenc
e to `_imp__unzOpen@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0x18a2): undefined referenc
e to `_imp__unzClose@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0x1c01): undefined referenc
e to `_imp__unzGoToFirstFile@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0x1c2d): undefined referenc
e to `_imp__unzGoToNextFile@4'
CMakeFiles\CEGUIBase.dir/objects.a(MinizipResourceProvider.cpp.obj):MinizipResourceProvider.cpp:(.text+0x1c82): undefined referenc
e to `_imp__unzGetCurrentFileInfo@32'
First, I've tried to link against the ZLib version included with the dependencies pack (the pack itself is also the latest Mercurial snapshot), nothing changed. After searching around, I found basically nothing regarding these calls. Well, I found only one forum post where the poster had similiar linker errors when trying to compile the ZLib windows api. They managed to solve this by adding "#define ZLIB_WINAPI" before including zlib. So I tried to add this line before "#include "minizip/unzip.h"" in MinizipResourceProvider.cpp, but nothing happened.
What should I do next? Do I really need the Minizip resource provider? I'm going to use CEGUI with Ogre, and Ogre has its own zip reader, so can I just use that to load CEGUI-related resources from zip files?
Also, what is that PCRE stuff? Do I really need that? CMAKE says it's needed for "editbox string validation", but again, I'm not sure what is this for.
Thank you in advance.