Нарушитель
![]() ![]() 4573 / 2481 / 991
Регистрация: 01.06.2021
Сообщений: 8,496
|
||||||
Сборка из исходников wxWidgets под Windows, используя MinGW и makefile01.01.2024, 22:55. Показов 11443. Ответов 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 чтобы предотвратить нехватку оперативной памяти при сборке В итоге, если презюмировать, что не отключаем включенный по умолчанию юникод, то возможны такие варианты:
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.
2
|
01.01.2024, 22:55 | |
Ответы с готовыми решениями:
1
Makefile: сборка из исходников в поддиректории Сборка проекта под mingw в windows Сборка MySQL драйверов под Windows для mingw |
Just Do It!
![]() |
||
20.01.2025, 09:00 | ||
Royal_X, всё прошло гладко - без сучка и запинки...
Не по теме:
удобство это изготовить одну кнопку в виде батника с path внутри и по ней клацать) спасибо за манула)
0
|
20.01.2025, 09:00 | |
Помогаю со студенческими работами здесь
2
Как из исходников собрать exe в Windows с Mingw?
PHP 5.5 — сборка из исходников под nginx Сборка Box2D под MinGW Сборка Qt 4.8.5 под MinGW, неизвестная ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Исключения в Java: советы, примеры кода и многое другое
Javaican 18.05.2025
Исключения — это объекты, созданные когда программа сталкивается с непредвиденной ситуацией: файл не найден, сетевое соединение разорвано, деление на ноль. . . Список можно продолжать до бесконечности. . . .
|
Как сделать SSO (Single Sign-On) в C# приложении
stackOverflow 18.05.2025
SSO — это механизм, позволяющий пользователю пройти аутентификацию один раз и получить доступ к нескольким приложениям без повторного ввода учетных данных. Вы наверняка сталкивались с ним, когда. . .
|
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
|
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
|
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
|
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
|
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
|
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
|
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
|
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
|