Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6120 / 2815 / 1038
Регистрация: 01.06.2021
Сообщений: 10,274

Сборка из исходников wxWidgets под Windows, используя MinGW и makefile

01.01.2024, 22:55. Показов 13445. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В данной статье приводится инструкция, как собрать из исходников wxWidgets, используя GNU Make на Windows.

0. Для сборки нужен MinGW, в частности mingw32-make. Если он у вас имеется, то переходим к следующему этапу.
Если у вас сложности с установкой MinGW, то советую скачать архив со всем необходимым из сайта winlibs. Там рекомендую выбирать MinGW-w64 (UCRT) + GCC. Разархивируйте архив и укажите абсолютный путь к папке bin в Path.
Для удобства добавляем переменную среды.
Нажимаем Win+R и вводим команду SystemPropertiesAdvanced и далее нажимаем на Переменные окружения
Далее, в переменных системы ищем переменную Path и нажимаем Изменить.
Добавляем папку тулчейна. Например, в моем случае C:\msys64\ucrt64\bin.
В указанной папке должен быть файл mingw32-make.exe. Если нет, то вы неправильно установили тулчейн.

1. Заходим на официальный сайт wxWidgets и нажимает на Downloads
Кликните здесь для просмотра всего текста


2. Скачиваем архив с исходниками (zip или 7z)
Кликните здесь для просмотра всего текста


3. Разархивируем скачанные файлы, например, в корень диска С. Например, после этих действий у вас должна быть папка C:\wxWidgets-3.2.4

4. Переходим в папку C:\wxWidgets-3.2.4\build\msw\. Перед глазами должны быть разные файлы, среди которых makefile.gcc. Если вы его видите, то вы в правильной папке.

5. Кликаете на адресную строку в Проводнике, вводите команду cmd и нажимаете Enter.
Кликните здесь для просмотра всего текста

Открывается командная строка, где выбран уже C:\wxWidgets-3.2.4\build\msw>

6. Далее, нужно прописать команду для сборки с помощью make

Команда состоит из двух частей:

Первая часть указывает на наш makefile:

mingw32-make -f makefile.gcc

Во второй части идут опции, которые нужно передать в зависимости от того, что вам нужно

BUILD=release (если вам нужна релизная сборка)
или
BUILD=debug (если нужна отладочная сборка)

SHARED=1 (говорит о том, что нужно генерировать DLL файлы для динамической линковки)
или
SHARED=0 (выбрана по умолчанию, можно даже не прописывать. Означает, что нужна версия со статической линковкой)

MONOLITHIC=1 (если нужно генерировать одну большую библиотеку вместо отдельных файлов)
Опция MONOLITHIC 1 используются только с SHARED 1

UNICODE=1 (выбрана по умолчанию, можно не прописывать. Означает, что нужно использовать юникод)
или
UNICODE=0 (использует ANSI)

Примечание: при сборке с опциями SHARED=1 MONOLITHIC=1 рекомендую также прописать
CXXFLAGS=-fno-keep-inline-dllexport
чтобы предотвратить нехватку оперативной памяти при сборке

В итоге, если презюмировать, что не отключаем включенный по умолчанию юникод, то возможны такие варианты:
Code
1
2
3
4
5
6
SHARED=0 BUILD=debug
SHARED=0 BUILD=release
SHARED=1 BUILD=debug
SHARED=1 BUILD=release
SHARED=1 MONOLITHIC=1 BUILD=debug
SHARED=1 MONOLITHIC=1 BUILD=release
Т.к. я предпочитаю всегда статическую линковку и мне достаточно релизной сборки, то я прописываю:

mingw32-make -f makefile.gcc SHARED=0 BUILD=release

т.е. в командной строке выглядит так

C:\wxWidgets-3.2.4\build\msw>mingw32-make -f makefile.gcc SHARED=0 BUILD=release
Кликните здесь для просмотра всего текста


Далее нажимаю Enter и сборка начинается.

Процесс занимает много времени, которое зависит от вашего железа.
В конце нужно убедиться, что сборка прошла без ошибок.

***

Потом можно создать папку, например, wxWin куда скопировать из папки C:\wxWidgets-3.2.4 (папка с исходниками) две папки:
C:\wxWidgets-3.2.4\include
C:\wxWidgets-3.2.4\lib\

В итоге, получится
wxWin\include
wxWin\lib

Собственно, папку C:\wxWidgets-3.2.4\ можно потом удалить, если не планируете создать другие сборки.

Дальше в ide указываются папки из wxWin.
Например, если Code::Blocks, то в Settings/Global variables создается переменная wx.
в base указывается абсолютный путь к wxWin
в include указывается абсолютный путь к wxWin\include
в lib указывается абсолютный путь к wxWin\lib

Далее создаете проект wxWidgets
При создании проекта, выбирайте wxWidgets 3.2, а также ставьте или уберите галочки, касающиеся юникода, типа созданной библиотеки и пр., чтобы оно соответствовало опциям, которые вы использовали при сборке.

Дополнительно можно скачать wxFormBuilder, которая облегчит процесс создания форм, либо использовать плагин wxSmith из C::B.
4
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.01.2024, 22:55
Ответы с готовыми решениями:

Makefile: сборка из исходников в поддиректории
Здравствуйте, никак не могу разобраться, как прописать правило для сборки из исходников в поддиректории. Пытаюсь запустить простой...

Сборка проекта под mingw в windows
Всегда использовал студию и собирал из под ее командной строки. прописывал qtenv.bat, qmake, nmake. Но тут понадобилась чистая...

Сборка MySQL драйверов под Windows для mingw
При выполнении C:\Qt\Qt5.1.0\5.1.0-beta1\Src\qtbase\configure.exe Выдает ошибку: Error: Creating a shadow build of Qt requires ...

1
Just Do It!
 Аватар для XLAT
4190 / 2645 / 654
Регистрация: 23.09.2014
Сообщений: 8,925
Записей в блоге: 3
20.01.2025, 09:00
Royal_X, всё прошло гладко - без сучка и запинки...

Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
Для удобства добавляем переменную среды.
нет тут никакого удобства в моем случае - у меня зоопарк компиляторов.
удобство это изготовить одну кнопку в виде батника с path внутри и по ней клацать)



спасибо за манула)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.01.2025, 09:00
Помогаю со студенческими работами здесь

Как из исходников собрать exe в Windows с Mingw?
Пробовал с mingw491_32. Вот эту программу Sip-4.17 https://sourceforge.net/projects/pyqt/files/sip/sip-4.17/sip-4.17.zip/download ...

QElectroTech сборка из исходников под виндоус
Всем привет) вопрос кто нибудь собирал QElectroTech под виндоус?Скачала исходники, выдает только одну ошибку.. No rule to make target...

PHP 5.5 — сборка из исходников под nginx
Доброго времени суток! Вопрос следующий - как правильно собрать PHP5 из исходников под nginx (php-fpm), без использования абсолютных...

Сборка Box2D под MinGW
Как собрать из исходников файл Box2D.dll под MinGW, чтобы можно было в свои проекты подключать?

Сборка Qt 4.8.5 под MinGW, неизвестная ошибка
Собираю под Windows 7 qt-everywhere-opensource-src-4.8.5, скачал с архива на downloads.qt.io, во время исполнения confiigure: set...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru