Ситуация: У меня есть много сжатых входных файлов, которые я хочу обработать в программе переменного тока.Я могу извлекать каждый из них каждый раз, когда мне это нужно, но это занимает много времени, поэтому я хотел бы использовать для извлечения памяти.В качестве тестового примера я скачал исходники zlib из http://zlib.net/ и попытался скомпилировать пример zpipe.c
Проблема: Когда я компилирую zpipe.c, используя:
x86_64-w64-mingw32-gcc -Wall -O3 zpipe.c -o zpipe -L. -lzlib1
Я получаю сообщение об ошибке:
x86_64-w64-mingw32/bin/ld.exe: skipping incompatible ./zlib1.dll when searching for -lzlib1
x86_64-w64-mingw32/4.5.4/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lzlib1
В чем проблема, по-моему, (Я получил это от Пропуск несовместимой ошибки при связывании )
Я пытаюсь связать 32-битную DLL, пока я компилирую в 64-битном коде.Когда я смотрю на http://zlib.net/zlib_faq.html#faq26, говорят, что zlib тестируется на 64-битных машинах, но я предполагаю, что это означает, что вы все еще компилируете 32-битный код.Обратите внимание, что я компилирую zpipe.c (предоставленный в исходном коде zlib), так что я уверен, что все включения в порядке.Я положил zlib1.dll в каталог компиляции.
Что я сделал / нашел: Среди других я нашел 2 хороших примера (однако с обоими из них у меня есть проблема, описанная выше)
И я посмотрел на другие вопросы, такие как:
Я также создаю dll самостоятельно в vc 2010, однако все конфигурации проекта в zlib1,26 источника для 32-битной конфигурации.Поэтому после того, как я собрал dll, у меня та же ошибка, что и выше.
Длинная история, так что краткое резюме моих вопросов :
- Есть что-тоЯ делаю неправильно во время компиляции?
- Правильно ли, что я никогда не смогу использовать dll zlib1 при компиляции в 64-битной версии?
- И самое важное: могу ли я как-нибудь скомпилировать 64-битную версию?саму версию zlib (используя, например, эти http://msdn.microsoft.com/en-us/library/9yb4317s.aspx инструкции), или они где-то уже доступны (я не смог найти их до сих пор)?
Спасибо всем за вашевремя!