Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передвижение стрелками Как переключаться между элементами списка в консоли с помощью стрелок? И если кто знает подскажите где можно обучиться делать оконные приложения? https://www.cyberforum.ru/ cpp-beginners/ thread636052.html C++ Не понятный вызов деструктора
Здравствуйте. Ситуация такая, есть класс MyClass к примеру, и при таком коде: //разные инклюды MyClass var; int WinMain(...) { var = MyClass(/*аргументы*/); //далее цикл проверки сообщений и...
C++ Перемещение файлов https://www.cyberforum.ru/ cpp-beginners/ thread636039.html
Можно как нибудь программно переместить файл с расширением txt?
C++ Не работает jsoncpp Добрый день! Начал знакомится с либой JSONcpp. Сижу на VS2010. Прописал пути до заголовков(папка include) и до lib-файлов(папка src\lib_json): http://img820.imageshack.us/img820/5455/82385125.png... https://www.cyberforum.ru/ cpp-beginners/ thread636038.html
Перемещение курсора C++
Подскажите как передвинуть курсор в любую точку экрана по координатам x и y. Или каким нибуд другим способом?
C++ Invoke: доступ с другого потока https://www.cyberforum.ru/ cpp-beginners/ thread636029.html
data.button->Text="бот" + data.id; data.button->Location=System::Drawing::Point(5,5); data.button->Size=System::Drawing::Size(25, 23); data.button->UseVisualStyleBackColor = true;...
C++ Начал учиться https://www.cyberforum.ru/ cpp-beginners/ thread636021.html
Доброго времени суток. Я на неделе решился заняться изучением С++ и сегодня наконец взялся за это. На руках есть учебник С++ из которого я и черпаю инфу, однако там нету пояснений возможных ошибок....
C++ Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Пожалуйста, укажите на ошибку в моем коде и, если возможно, подкорректируйте где надо или...
C++ Работа с текстовым файлом Здравствуйте все! Мне очень нужна помощь в написании кода программы для работы с текстовым файлом. Допустим, у меня есть документ.txt примерно такого содержания: words_ab.1234%abc.ru... https://www.cyberforum.ru/ cpp-beginners/ thread635974.html C++ Не вижу ошибку https://www.cyberforum.ru/ cpp-beginners/ thread635929.html
Здравствуйте! Не вижу в чём ошибка (выдает на 12 строчке). Так же возникла проблема с выравниванием по правому краю (нашел 2 варианта форматирования, но ничего не изменилось). Мой компилятор:...
C++ Расскажите как определиться начинающему
Всем привет! Давно решаюсь начать изучение программирования. Последней каплей оказалось желание создать свою программу по учету проектов, что-то вроде базы. Аксес совсем не устроил. Но в силу...
C++ Регистрация программы в списке Удаления и изменения программ https://www.cyberforum.ru/ cpp-beginners/ thread635905.html
Поделитесь пожалуйста ссылочкой на доку для это темы или готовым решением?
2 / 2 / 0
Регистрация: 27.07.2012
Сообщений: 31
0

MinGW+MSYS - как грамотно пользоваться? - C++ - Ответ 3348091

11.08.2012, 20:42. Показов 6480. Ответов 2
Метки (Все метки)

Вопрос:
Добрый день, уважаемые форумчане!

У меня такой вопрос:
Пытаюсь собрать PostgreSQL под Windows, используя связку MinGW+MSYS. Раньше не пользовался MSYS, по сему вопрос от неопытности.
Итак, скачал исходники, запустил configure, процесс пошёл... и тут же возникает проблема отсутствия zlib. Её тоже скачал, собрал (благо там-то всё просто). Снова запускаю ./configure для PostgreSQL, но проблема остаётся. Оно и понятно - библиотека zlib лежит в специально отведённой для этих целей папке на D:/, и autoconf (ведь в MSYS эта программа используется?) там их искать и не пытается.
Конечно, про сборке PostgreSQL можно отказаться от zlib, но дело не в этом, хочется выяснить, как же указать где искать библиотеки и заголовочники?

В ./configure --help я нашёл только один флаг, который должен бы решить эту проблему:
--with-libraries=DIR - Looking for additional libraries in DIR
, однако вызов
./configure --with-libraries="D:/Develop/lib" ...
не исправил проблему.

Так же, добавил папку с библиотеками в PATH - на всякий случай, а вдруг? Тоже самое

В общем, надеюсь, что те кто часто собирает что-то из исходников под Windows, знают об этой проблеме и её решении.

Благодарю за ответы

Добавлено через пару часов
Ответ:
Кажется разобрался. Напишу сюда решение, мало ли кому пригодится.
Как я понял, при выполнении скрипта ./configure кроме всего прочего производится проверка присутствия в системе тех или иных библиотек (в моём случае, это zlib). Такая проверка осуществляется очень просто: для каждой библиотеки создаётся и собирается простейшая программа, и в случае, если ошибок нет, значит нужна библиотека есть, а если были ошибки (например, ошибка линковщика, или отсутствие заголовочников), значит библиотеки нет. Просто и эффективно.

Если заголовочники и библиотеки находятся не в стандартной директории (в моём случае, в D:/Develop/lib и D:/Develop/include), то при запуске ./configure необходимо передать ему ключ CFLAGS или CPPFLAGS, в зависимости от того, какой компилятор используется при сборке (например, gcc или g++ соответственно). В качестве значения для этого ключа нужно передать пути к заголовочникам и либам. В моём случае это была команда:

./configure CFLAGS="-ID:/Develop/include -Wl,-LD:/Develop/lib/"

Я использовал CFLAGS, а не CPPFLAGS, так как при сборке PostgreSQL используется gcc.
Значение ключа передаётся компилятору при сборке тестовых программ, и будет передаваться при сборке проекта после конфигурирования.
Ключ "-I" - это gcc ключ, который дополнительную директорию для поиска заголовочников.
Ключ -Wl означает, что все последующие после запятой ключи будут переданы из gcc линковщику.
Ключ -L - это уже ключ линковщика (ld), с помощью которого мы добавляем ещё одну директорию для поиска библиотек

Когда будет выполняться ./configure, он, при сборке тестовых примеров, будет передавать эти ключи компилятору, и библиотека zlib будет успешно найдена.

Кстати, ещё одна штука: при сборке zlib из исходников с использованием CMake, собранная библиотека будет называться не libz (какую ищет ./configure у PostgreSQL), а libzlibstatic. Я просто переименовал её в libz и всё готово - PostgreSQL собрался под виндой.

Вернуться к обсуждению:
MinGW+MSYS - как грамотно пользоваться? C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2012, 20:42
Готовые ответы и решения:

Компиляция в MSYS (MinGW)
Всем приветы! Подскажите, есть папка с примерами, там makefile. Я в MSYS захожу в эту папку и...

Научите пользоваться MinGW
Здравствуйте, я новичок и только вчера скачал MinGW и установил. Но я ламер и не могу понять даже...

MINGW+MSYS
Здравствуйте форумчане! Мне нужно собрать LIBZIP. Подскажите пожалуйста что я не так делаю? ...

Как пользоваться компилятором MinGW
Скачал компилятор MinGW. Рассажите плз где там собственно компилятор. Я пишу в Notepad++. Когда...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2012, 20:42
Помогаю со студенческими работами здесь

Нужно создать бат файл, который запускает msys, и далее, уже в msys, выполняются определенные действия
Есть 2 библиотеки mpir и mpfr, которые собираются с помощью ./configure. Нужно создать бат файл,...

как пользоваться программатором для Whirlpool, раздобыл программатор, а как им пользоваться я не знаю
подскажите плиз

MinGW, при установке ошибка: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz
Добрый день, форумчане! Недавно начал изучать Си, решил попрактиковаться. В качестве компилятора не...

MSYS и Mikefile
Возможно ли написать такой bat-ник, который бы заставил MSYS выполнить Mikefile, лежащий в папке с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru