Комментарии 24
За это время пока все настроишь и соберешь можно уже на Qt5 программу успеть написать.
Ну не скажите) Qt конечно инструмент хороший, но соответственно и хорошо стоит.
В смысле хорошо стоит? Это же свободное ПО.
было. Или опять свободное? Или я чего то не знаю?..
Лицензия GNU LGPL или GNU GPL, коммерческая
а, нет. Ну ведать смотря в каких целях использовать…
Свободное-свободное. LGPL подпадает под определение open source.
open source — это еще не означает что свободное (открытое <> свободное), вы же прекрасно понимаете. И прямо не означает что проприетарное ПО возможно использовать в коммерческих целях.
Open-source software (OSS) is computer software with its source code made available and licensed with a license in which the copyright holder provides the rights to study, change and distribute the software to anyone and for any purpose.
Qt лицензирован GNU LGPL 2.1, которая is a free software license.
Qt лицензирован GNU LGPL 2.1, которая is a free software license.
Свободный, если распространять исходники вместе с бинарником.
Автор, круто бы описать основные отличия функционала wx от тех же Qt/GTK/Tk.
Автор, круто бы описать основные отличия функционала wx от тех же Qt/GTK/Tk.
Я считаю, что в эту статью нужно добавить больше объяснений.
Тут какой-то рецепт, который может быстро устареть или вообще не сработать в других условиях.
Тут какой-то рецепт, который может быстро устареть или вообще не сработать в других условиях.
Вы ошибаетесь, наоборот, представлен именно универсальный рецепт сборки и настройки wxWidgets под Windows.
Что бы Вы убедились, постараюсь подытожить:
1) Условимся, что у нас установлена обновленноя ОС Windows;
2) Скачиваем компилятор TDM-GCC последней версии с официального сайта;
3) Устанавливаем этот самый компилятор, и прописываем в переменную Path путь к бинарникам компилятора: C:\TDM-GCC-32\bin;
4) Скачиваем и распаковываем последнюю стабильную версию wxWidgets;
5) Прописываем глобальную системную переменную WXWIN и присваиваем ей значение пути к корневому каталогу библиотеки: C:\wxWidgets-3.0.0;
6) Выполняем сборку этой самой библиотеке, выполняя следующие действия по порядку (дожидаясь завершения каждого), а именно, запускаем командную строку, и выполняем:
cd %WXWIN%\build\msw
mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
7) Настраиваем необходимый нам IDE соответствующим образом.
Не пойму куда еще универсальнее?
Поясните пожалуйста. Тут или я чего то не понял, или вы с общим процессом сборки незнакомы.
Или под универсальным способом вы имели введу установку из репозитория?
Что бы Вы убедились, постараюсь подытожить:
1) Условимся, что у нас установлена обновленноя ОС Windows;
2) Скачиваем компилятор TDM-GCC последней версии с официального сайта;
3) Устанавливаем этот самый компилятор, и прописываем в переменную Path путь к бинарникам компилятора: C:\TDM-GCC-32\bin;
4) Скачиваем и распаковываем последнюю стабильную версию wxWidgets;
5) Прописываем глобальную системную переменную WXWIN и присваиваем ей значение пути к корневому каталогу библиотеки: C:\wxWidgets-3.0.0;
6) Выполняем сборку этой самой библиотеке, выполняя следующие действия по порядку (дожидаясь завершения каждого), а именно, запускаем командную строку, и выполняем:
cd %WXWIN%\build\msw
mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
7) Настраиваем необходимый нам IDE соответствующим образом.
Не пойму куда еще универсальнее?
Тут какой-то рецепт, который может быстро устареть или вообще не сработать в других условиях.
Поясните пожалуйста. Тут или я чего то не понял, или вы с общим процессом сборки незнакомы.
Или под универсальным способом вы имели введу установку из репозитория?
и то пункты 1-3 отпадают если у нас уже все установлено.
в случае ошибки, обращаемся к FAQ.
3. Обновленная windows не даст вам писать в корень диска C: без запроса UAC.
2,3. Что за TDM-GCC с официального сайта. Раньше официальным был mingw.org. Но он выродился, и сейчас лучшие сборки выпускает mingw builds. Причем сборок там довольно много, и так много их неспроста (подсказка — я не буду менять свой компилятор только для того, чтобы он соответствовал вашей инструкции, потому что я его тоже не просто так выбрал). Тут мы молчим, что есть еще вариант MSVC.
5. Прописывать глобальные системные переменные вообще — плохо. Да и почему я ее должен кому-то прописывать, а не создать bat-file с окружением, как это делает, например, msys shell? Я бы сказал, что прописывание глобальных системных переменных сродни make install в linux. Отличный способ все сломать! Зачем учить людей плохому?
6. Надо подробнее описать, на что влияют данные настройки. Например, стоит разъяснить ситуацию со статической линковкой и лицензиями.
7. IDE для С++ существует не одна. Люди могут пользоваться Netbeans, Eclipse, Qt Creator, Sublime text. Потому нужно объяснять не как настроить в конкретной IDE, а какие библиотеки и заголовки подключать и для чего. У вас же сплошная магия.
И магия так и продолжается до самого конца: вы приводите какие-то тексты ошибок и предполагаемые решения, но я уверен, что у ошибок может быть несколько причин и несколько путей устранения. Если вы приводите faq, то надо объяснять, что за ошибку вы описываете, ее источник — и почему она так решается. Да, где-то вы это сделали — но не во всех случаях.
А последний вопрос faq, вы, видимо, и сами не понимаете. «CXXFLAGS=»-fno-keep-inline-dllexport"" может перестать работать в любой момент просто потому что разработчики поменяют код. Правильным решением было бы, навреное, производить в таком случае кросскомпиляцию с win64 хост на win32 target.
Вы уверены, что LAA работает так, как вы думаете?
Написано, что это разрешает использовать 3GB вашему приложению, но не линковщику самому (которому памяти не хватает).
2,3. Что за TDM-GCC с официального сайта. Раньше официальным был mingw.org. Но он выродился, и сейчас лучшие сборки выпускает mingw builds. Причем сборок там довольно много, и так много их неспроста (подсказка — я не буду менять свой компилятор только для того, чтобы он соответствовал вашей инструкции, потому что я его тоже не просто так выбрал). Тут мы молчим, что есть еще вариант MSVC.
5. Прописывать глобальные системные переменные вообще — плохо. Да и почему я ее должен кому-то прописывать, а не создать bat-file с окружением, как это делает, например, msys shell? Я бы сказал, что прописывание глобальных системных переменных сродни make install в linux. Отличный способ все сломать! Зачем учить людей плохому?
6. Надо подробнее описать, на что влияют данные настройки. Например, стоит разъяснить ситуацию со статической линковкой и лицензиями.
7. IDE для С++ существует не одна. Люди могут пользоваться Netbeans, Eclipse, Qt Creator, Sublime text. Потому нужно объяснять не как настроить в конкретной IDE, а какие библиотеки и заголовки подключать и для чего. У вас же сплошная магия.
И магия так и продолжается до самого конца: вы приводите какие-то тексты ошибок и предполагаемые решения, но я уверен, что у ошибок может быть несколько причин и несколько путей устранения. Если вы приводите faq, то надо объяснять, что за ошибку вы описываете, ее источник — и почему она так решается. Да, где-то вы это сделали — но не во всех случаях.
А последний вопрос faq, вы, видимо, и сами не понимаете. «CXXFLAGS=»-fno-keep-inline-dllexport"" может перестать работать в любой момент просто потому что разработчики поменяют код. Правильным решением было бы, навреное, производить в таком случае кросскомпиляцию с win64 хост на win32 target.
Вы уверены, что LAA работает так, как вы думаете?
--large-address-aware
If given, the appropriate bit in the «Characteristics» field of the
COFF header is set to indicate that this executable supports vir-
tual addresses greater than 2 gigabytes. This should be used in
conjunction with the /3GB or /USERVA=value megabytes switch in the
"[operating systems]" section of the BOOT.INI. Otherwise, this bit
has no effect. [This option is specific to PE targeted ports of
the linker]
Написано, что это разрешает использовать 3GB вашему приложению, но не линковщику самому (которому памяти не хватает).
замечания принял, но:
Писать в корень не обязательно, сами понимаете можно задать любой путь расположения библиотеки. Я лишь рекомендовал оставлять пути по умолчанию, т.е. те пути по которым библиотека или приложение, само «просится».
TDM-GCC это альфа сборка новых релизов gcc собранных для mingw
A compiler suite for 32- and 64-bit Windows based on the GNU toolchain

Сам при сборке wx с помощью MinGW, от версии к версии получал ошибки. При использовании TDM-GCC, аналогичных ошибок не возникало.
Возможно вы правы, но я делаю именно так. Прежде всего это удобно с точки зрения использования коротких имен переменных, вместо длинных путей к библиотекам.
Согласен, Вы правы.
FAQ нарыт в просторах Интернета, был размешен в качестве справочной информации в случае возникновения аналогичных ошибок.
И самое главное было сказано в конце: Пост ориентирован прежде всего на начинающую аудиторию программистов, и не в коем случае не претендует на истину в последней инстанции.
3. Обновленная windows не даст вам писать в корень диска C: без запроса UAC.
Писать в корень не обязательно, сами понимаете можно задать любой путь расположения библиотеки. Я лишь рекомендовал оставлять пути по умолчанию, т.е. те пути по которым библиотека или приложение, само «просится».
2,3. Что за TDM-GCC с официального сайта. Раньше официальным был mingw.org.
TDM-GCC это альфа сборка новых релизов gcc собранных для mingw
A compiler suite for 32- and 64-bit Windows based on the GNU toolchain

TDM-GCC is a compiler suite for Windows.
It combines the most recent stable release of the GCC toolset, a few patches for Windows-friendliness, and the free and open-source MinGW or MinGW-w64 runtime APIs to create an open-source alternative to Microsoft's compiler and platform SDK.
It can create 32-bit OR 64-bit binaries, for any version of Windows since Windows 98.
It has an easy-to-use single-file installer that creates a working installation with just a few clicks, and can update that installation when new packages become available.
It consists of command-line tools only. If you want a visual IDE (text editor, compiler interface, visual debugger), Code::Blocks integrates well with TDM-GCC.
TDM-GCC is a redistribution of components that are freely available elsewhere; as such, support for using TDM-GCC should generally be sought on the basis of the individual components in their respective forums. See the documentation for more details.
Сам при сборке wx с помощью MinGW, от версии к версии получал ошибки. При использовании TDM-GCC, аналогичных ошибок не возникало.
5. Прописывать глобальные системные переменные вообще — плохо. Да и почему я ее должен кому-то прописывать, а не создать bat-file с окружением, как это делает, например, msys shell? Я бы сказал, что прописывание глобальных системных переменных сродни make install в linux. Отличный способ все сломать! Зачем учить людей плохому?
Возможно вы правы, но я делаю именно так. Прежде всего это удобно с точки зрения использования коротких имен переменных, вместо длинных путей к библиотекам.
6. Надо подробнее описать, на что влияют данные настройки. Например, стоит разъяснить ситуацию со статической линковкой и лицензиями.
7. IDE для С++ существует не одна. Люди могут пользоваться Netbeans, Eclipse, Qt Creator, Sublime text. Потому нужно объяснять не как настроить в конкретной IDE, а какие библиотеки и заголовки подключать и для чего. У вас же сплошная магия.
Согласен, Вы правы.
FAQ нарыт в просторах Интернета, был размешен в качестве справочной информации в случае возникновения аналогичных ошибок.
И самое главное было сказано в конце: Пост ориентирован прежде всего на начинающую аудиторию программистов, и не в коем случае не претендует на истину в последней инстанции.
Тут какой-то рецепт, который может быстро устареть или вообще не сработать в других условиях.
Кстати в XP — также все прекрасно собирается, потому же самому рецепту.
Добавлю свой рецепт.
1) Качаем Code::Blocks с интегрированным MinGW (TDM-GCC).
2) Устанавливаем.
3) Добавляем в переменную Path путь к бинарникам компилятора.
;c:\Programs\CodeBlocks\MinGW\bin\
4) Скачиваем и распаковываем последнюю стабильную версию wxWidgets;
5) Прописываем глобальную системную переменную WXWIN и присваиваем ей значение пути к корневому каталогу библиотеки.
c:\Programs\wxWidgets-3.0.2\
6) В файле %WXWIN%\build\msw\config.gcc устанавливаем флаг для C++11:
CXXFLAGS="-std=gnu++11"
7) Запускаем cmd
8) Если в path прописаны пути к другим версиям GCC (WinAVR, ARM), временно устанавливаем:
set path=c:\Programs\CodeBlocks\MinGW\bin;C:\Windows\system32;C:\Windows
9) Выполняем сборку библиотеки:
cd %WXWIN%\build\msw
mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
10) Для GUI-приложений включать поддержку jpeg и tiff обязательно.
1) Качаем Code::Blocks с интегрированным MinGW (TDM-GCC).
2) Устанавливаем.
3) Добавляем в переменную Path путь к бинарникам компилятора.
;c:\Programs\CodeBlocks\MinGW\bin\
4) Скачиваем и распаковываем последнюю стабильную версию wxWidgets;
5) Прописываем глобальную системную переменную WXWIN и присваиваем ей значение пути к корневому каталогу библиотеки.
c:\Programs\wxWidgets-3.0.2\
6) В файле %WXWIN%\build\msw\config.gcc устанавливаем флаг для C++11:
CXXFLAGS="-std=gnu++11"
7) Запускаем cmd
8) Если в path прописаны пути к другим версиям GCC (WinAVR, ARM), временно устанавливаем:
set path=c:\Programs\CodeBlocks\MinGW\bin;C:\Windows\system32;C:\Windows
9) Выполняем сборку библиотеки:
cd %WXWIN%\build\msw
mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0
10) Для GUI-приложений включать поддержку jpeg и tiff обязательно.
10) Для GUI-приложений включать поддержку jpeg и tiff обязательно.
это, да!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Библиотека инструментов wxWidgets. Сборка