Сборка zlib libz.a для 32 бит - PullRequest
6 голосов
/ 29 июня 2011

Я пытаюсь скомпилировать 32-битную версию (MinGW) программы, которую я написал, используя zlib. До сих пор мне никогда не приходилось компилировать 32-битную версию, поэтому версия zlib, которую я скомпилировал из исходного кода (libz.a), является 64-битной Я попытался перезапустить make-файл в каталоге zlib-1.2.5, но он компилирует только 64-битную версию libz.a.

Я не могу найти вариант для сборки 32-битной.

Кто-нибудь знает, как это сделать?

Спасибо!

Джеффри Кевин Прай

Ответы [ 3 ]

3 голосов
/ 05 января 2015

Проверяя файл конфигурации, вы можете увидеть некоторые env.

В 64-битном Debian следующая командная строка создаст 32-битную версию libz

CFLAGS=-m32 ./configure
0 голосов
/ 08 июня 2019

Использование CFLAGS=-32 не сделает этого для меня, сценарий configure все еще выкрикивает, подсказывая мне постоянно использовать win32/Makefile.gcc.


Последняя версия zlib - 1.2.11, поэтому до сегодняшнего дня разница должна быть минимальной. Без какого-либо контекста в системе следующее может быть полезно для других пользователей, сталкивающихся с подобной проблемой в эти дни.

Я кросс-компилирую в Linux (Ubuntu 18.04) и нацеливаюсь на создание 32-битной версии zlib. Я сделал следующее:

  1. ./configure (это просто для того, чтобы у нас был необходимый файл для процесса сборки, хотя мы будем использовать другой Makefile)
  2. Измените win32/Makefile.gcc для его PREFIX=i686-w64-mingw32- (для 64-битной версии вы измените его на PREFIX=x86_64-w64-mingw32-.
  3. make -fwin32/Makefile.gcc
  4. Установите по вашему желанию через make install -fwin32/Makefile.gcc SHARED_MODE=1 INCLUDE_PATH=/tmp/zlib-win32/include LIBRARY_PATH=/tmp/zlib-win32/lib BINARY_PATH=/tmp/zlib-win32/bin. Обратите внимание, что вам нужно указать INCLUDE_PATH, LIBRARY_PATH и BINARY_PATH. BINARY_PATH будет содержать файл .dll результата.
0 голосов
/ 05 июля 2011

Оказывается, мне нужно было получить 32-битную версию MinGW и скомпилировать ее.Я использовал MinGW64.

...