Форум программистов, компьютерный форум CyberForum.ru

MinGW for Windows - libpng ./configure - error: zlib not installed - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.70
nessy74
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 21
17.08.2012, 22:26     MinGW for Windows - libpng ./configure - error: zlib not installed #1
Пользуюсь MinGW for Windows.

Устанавливалось согласно этого мануала:
http://wiki.openttd.org/Компиляция_на_MinGW/Ru (открывайте копированием в броузер а не кликом)
Но версии библиотек я применял последние, а не те которые в мануале (устаревшие).

Дошел до пункта: Компиляция libpng
выполняю:
./configure
жужжит, и потом вылазит ошибка - error: zlib not installed

При этом Zlib был установлен согласно пункта "Компиляция zlib" вышеуказанного мануала.
Кроме того, в терминале MinGW выполнил: mingw-get install zlib

При вводе в терминале: $ mingw-get list zlib
Пишет: Package: mingw32-zlib Subsystem: mingw32
То есть типа Zlib в системе есть.

Но как я понял, скрипту ./configure пакета libpng надо указать реальный путь к Zlib в системе.
Это делается например так: ./configure CFLAGS="-ID:/Develop/include -Wl,-LD:/Develop/lib/"

Про это я вычитал тут: MinGW+MSYS - как грамотно пользоваться?

Вот некоторые файлы относящиеся к Zlib которые я нашел в моей MinGW:
c:\MinGW\msys\1.0\local\include\zlib.h
c:\MinGW\msys\1.0\local\include\zconf.h
c:\MinGW\var\lib\mingw-get\data\msys-zlib.xml
c:\MinGW\var\lib\mingw-get\data\mingw32-zlib.xml

Вопрос: что именно надо прописать в параметрах ./configure для libpng чтобы нашлась Zlib при конфигурировании libpng ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2012, 22:26     MinGW for Windows - libpng ./configure - error: zlib not installed
Посмотрите здесь:

Использование Zlib C++
mingw ./configure --prefix C++
C++ Api zlib
C++ ZLib
MinGW подключение библиотеки lib из под Windows C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZiminAS1990
 Аватар для ZiminAS1990
2 / 2 / 0
Регистрация: 27.07.2012
Сообщений: 31
17.08.2012, 23:13     MinGW for Windows - libpng ./configure - error: zlib not installed #2
Нужно прописать параметр CFLAGS как и написано в той теме, которую вы смотрели.
После флага -I нужно вписать вашу папку с заголовочниками, где лежит zlib.h:
C:/MinGW/msys/1.0/local/include/
(слэши меняйте на обратные)
Однако я не увидел, где у вас лежит сама библиотека - заголовочника-то мало. По ищите её где-нить например в
C:/MinGW/msys/1.0/local/lib/
Допустим, что она там есть. Тогда ключ к конфигуре будет такой:
./configure CFLAGS="-IC:/MinGW/msys/1.0/local/include/ -Wl,-LC:/MinGW/msys/1.0/local/lib/"
nessy74
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 21
17.08.2012, 23:14  [ТС]     MinGW for Windows - libpng ./configure - error: zlib not installed #3
Цитата Сообщение от ZiminAS1990 Посмотреть сообщение
Однако я не увидел, где у вас лежит сама библиотека - заголовочника-то мало.
а как именно должна называться бибиблиотека (сам файл) который надо искать?

это оно?
c:\MinGW\msys\1.0\local\lib\libz.a
ZiminAS1990
 Аватар для ZiminAS1990
2 / 2 / 0
Регистрация: 27.07.2012
Сообщений: 31
17.08.2012, 23:19     MinGW for Windows - libpng ./configure - error: zlib not installed #4
Я бы вообще как посоветовал - в исходниках к zlib есть файл CMakeLists.txt. Это означает, что zlib можно собрать не с помощью MinGW+MSYS, а с помощью системы сборки CMake:
http://www.cmake.org/

Просто нужно вбить:
cmake -G“MinGW Makefiles” -DCMAKE_INSTALL_PREFIX=<путь для установки>

а после этого как обычно:
make
make install

и библиотека встанет туда, куда вы указали после DCMAKE_INSTALL_PREFIX, причём автоматически создаст там папочки lib, include и проч. Вот эти папочки и нужно будет передавать в качестве флага CFLAGS в ./configure

О, совсем забыл: если сборка проекта осуществляется не на C, а на C++, то нужно указывать не CFLAGS, а CPPFLAGS

Добавлено через 23 секунды
Цитата Сообщение от nessy74 Посмотреть сообщение
а как именно должна называться бибиблиотека (сам файл) который надо искать?

это оно?
c:\MinGW\msys\1.0\local\lib\libz.a
Да, именно!
nessy74
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 21
17.08.2012, 23:27  [ТС]     MinGW for Windows - libpng ./configure - error: zlib not installed #5
тогда попутно такой вопрос:

если мне надо компилировать программы Win32 (.exe) из исходников в которых лежит готовый Makefile, то мне обязательно ставить и настраивать отдельный MinGW или можно использовать пакет Cygwin (со встроенным в него MinGW)?

будет ли мне Cygwin компилировать Win32 (.exe) из исходников программ для Windows?
ZiminAS1990
 Аватар для ZiminAS1990
2 / 2 / 0
Регистрация: 27.07.2012
Сообщений: 31
17.08.2012, 23:31     MinGW for Windows - libpng ./configure - error: zlib not installed #6
Цитата Сообщение от nessy74 Посмотреть сообщение
тогда попутно такой вопрос:
если мне надо компилировать программы Win32 (.exe) из исходников в которых лежит готовый Makefile, то мне обязательно ставить и настраивать отдельный MinGW или можно использовать пакет Cygwin (со встроенным в него MinGW)?
будет ли мне Cygwin компилировать Win32 (.exe) ?
Эх.... Cygwin не использовал никогда, не могу сказать.
но по поводу MinGW - конечно нет. Это же набор программ. Достаточно поставить её куда-либо, и добавить в переменную PATH папку
/путь/к/MinGW/bin
что позволит вам запускать программы из пакета MinGW прямо в консоли.
Например у меня это:
C:\QtSDK\mingw\bin
(mingw идёт вместе с QtSDK).

Если есть готовый MakeFile с исходниками, то просто прописываете:
mingw32-make -jX
make install

, где X - число, на 1 большее чем количество ядер.
Хотя куда пакет установится после сборки - хрен знает. Обычно это ведь указывается при конфигурации через --prefix, а тут где - не знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2012, 02:02     MinGW for Windows - libpng ./configure - error: zlib not installed
Еще ссылки по теме:

C++ Как подключить libpng в VS 2010?
C++ Cygwin и MinGW в Windows
Пытаемся подружить clang 3.6 и Code::Blocks 13.12 + MinGW под Windows 7 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
nessy74
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 21
18.08.2012, 02:02  [ТС]     MinGW for Windows - libpng ./configure - error: zlib not installed #7
Цитата Сообщение от ZiminAS1990 Посмотреть сообщение
Если есть готовый MakeFile с исходниками, то просто прописываете:
mingw32-make -jX
make install
если у меня CPU Core 2 Duo E8400, то надо писать "mingw32-make -j3" ?
судя по хелпу к mingw32-make, то можно просто дать опцию -j (без X), при этом кол-во задач будет бесконечным.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.

Цитата Сообщение от ZiminAS1990 Посмотреть сообщение
Хотя куда пакет установится после сборки - хрен знает. Обычно это ведь указывается при конфигурации через --prefix, а тут где - не знаю.
мне как раз достаточно просто make, а не make install.
при этом скомпиленные файлы обычно появляется в папке откуда запускался make, ну или там типа в папке build или bin.
кстати, если делать make install то не прописывается путь к установленной программе, например скомпилировал cmake, потом make install, он его забросил в Program Files, а путь к нему в системном PATH не прописал. Отдельный инсталлятор cmake в виде cmake-2.8.9-win32-x86.exe правда тоже не смог прописаться в PATH после установки cmake, ругнулся что PATH очень длинный, пришлось ручками через Windows XP Control Panel добавлять PATH к cmake.

ну чтобы понимать какие программы мне надо скомпилировать, это например:
http://www.videolan.org/developers/x264.html
http://mamedev.org/release.html

и как правильней запускать компиляцию в MinGW:
командой make или командой mingw32-make ?
насколько я вычитал mingw32-make - это порт GNU make под MinGW.
так если я запускаю make в терминале MinGW > MSYS, то реально запускается mingw32-make ?

ага... выходит что make и mingw32-make - это две разные программы в системе.
вот что они выводят про себя:

Alex@tycoon-851de03e /home
$ make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i686-pc-msys

Alex@tycoon-851de03e /home
$ mingw32-make -v
GNU Make 3.82
Built for i386-pc-mingw32
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Какую из них лучше использовать непонятно.
Судя по инфе, то make, потому что она скомпилена была для i686-pc-msys а не для i386-pc-mingw32, то есть работать наверное должна быстрей? Хотя если судить по версии и дате, то предпочтительней mingw32-make - она более новая.

=================================
Цитата Сообщение от nessy74 Посмотреть сообщение
Дошел до пункта: Компиляция libpng
выполняю:
./configure
жужжит, и потом вылазит ошибка - error: zlib not installed
я понял в чем причина этой проблемы.
это моя невнимательность была, на стадии установки/конфигурирования MinGW согласно этого мануала:
http://wiki.openttd.org/Компиляция_на_MinGW/Ru

там есть строка:
Настройка MSYS
Перейдите в каталог msys (C:\MinGW\msys\1.0), откройте etc\fstab с помощью текстового редактора (например Блокнота) и добавьте следующую строку:
C:\MinGW\ /usr/local

и вот этого я не сделал, поэтому у меня zlib и не находился.

а теперь я переинсталлировал MinGW с нуля, прописал вышеуказанную строку в etc\fstab
и теперь у меня libpng ./configure корректно все находит и завершается успешно.
Ура!
Yandex
Объявления
18.08.2012, 02:02     MinGW for Windows - libpng ./configure - error: zlib not installed
Ответ Создать тему
Опции темы

Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru