Компилиране на библиотеката wxWidgets в код

Софтуер, източници и снимки

По мое мнение, за разработка на различни платформи в C ++, Code:: Blocks е най-подходящата среда за разработка, с всяка версия на тази IDE става по-лесна за използване и работи по-добре извън кутията. В тази статия ще разгледаме процеса на компилиране на библиотеката wxWidgets в тази среда.

На страницата за изтегляне на wxWidgets можете да изтеглите вече компилирани обектни файлове за тази библиотека, но понякога трябва сами да компилирате библиотеката, например, ако трябва да зададете някои опции за компилиране или да компилирате с някакъв специфичен компилатор.

В тази статия ще разгледаме компилирането на wxWidgets с помощта на компилатора mingw, който идва с Code::Blocks. За всеки случай нека ви напомня, че mingw е GCC компилатор за Windows.

Компилиране на библиотеката wxWidgets

0. Изтегляне на Code::Blocks Основното е да изтеглите Code::Blocks с интегриран mingw.

1. Инсталирайте код::блокове. Тук няма нищо особено, под Windows щракнете върху Напред -> Следващ -> следващия. Всичко е както обикновено.

2. Задаване на променливата на средата PATH. Code::Blocks може да използва както компилатори на трети страни, така и интегрирания mingw (това е случаят, който обмисляме), който след инсталирането ще се намира в папката C:\Program Files (x86)\CodeBlocks\MinGW\. За да улесните използването на този компилатор, препоръчително е да добавите този път към променливата на средата PATH. По принцип не можете да направите това, но тогава в много случаи, когато работите със същия компилатор от командния ред, ще трябва или да посочите пълния път до компилатора, или да го добавите към същата променлива при всяка работна сесия. IMHO, по-добре е да зададете тази променлива на средатанезабавно.

За да зададете променлива на средата под Windows, трябва да влезете в диалоговия прозорец "System Properties" (тъй като съм с англоезичен Windows, ще дам всички имена на английски, мисля, че няма да е трудно да намеря българския им еквивалент). Този диалогов прозорец е заровен достатъчно дълбоко, за да влезете в него под Windows 8.1, натиснетедесния бутон на мишката върху бутона Старт, изберете елемента от менюто Система. Ще се отвори следният прозорец:

wxwidgets

Отляво изберете елемента Разширени системни настройки и влезте в диалоговия прозорец „Свойства на системата“. След това в раздела Разширени щракнете върху бутона Променливи на средата

библиотеката

Ще се отвори диалоговият прозорец „Променливи на средата“, в долния списък на който трябва да намерите променливата Path.

компилиране

Стойността на тази променлива най-вероятно ще бъде различна. Щракнете двукратно върху тази променлива и в диалоговия прозорец, който се отваря, добавете пътя към mingw файловете, които ще се стартират, разделени с точка и запетая, т.е. в нашия случай към C:\Program Files (x86)\CodeBlocks\MinGW\bin\.

3. Изтеглете wxWidgets. Трябва да изтеглите файл от секцията "Изходен код", за простота ще приемем, че изтегляме архив с изходни кодове в zip или 7z формат.

библиотеката

4. Разопаковайте архива с wxWidgets в някоя папка, например в C:\Library\wxwidgets\.

5. Отворете команден ред с помощта на командата cmd.

6. Архивът wxWidgets съдържа специална папка ("build\msw"), която съдържа проектни файлове за компилиране на библиотеката под Windows с помощта на различни среди.Отидете до тази папка с помощта на командата

7. Ако вече сте опитали (неуспешно) или с други опции да компилирате wxW >

mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 UNICODE=1 USE_OPENGL=1BUILD=освободете чисто

mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=0 UNICODE=1 USE_OPENGL=1 BUILD=изчистване

Ако получите грешка, че командата mingw32-make не е намерена по време на изпълнение на тази команда, тогава не сте добавили пътя към тази команда към променливата на средата PATH (вижте стъпка 2).

8. Отляво в същата папка C:\Library\wxw >

Гледайки напред, ето получените файлове след компилирането на wxWidgets в монолитен режим:

Blocks

И ето списъка с файлове при компилиране в различни dll:

прозорец

Уики страницата wxWidgets препоръчва тези опции за компилиране:

  • Параметърът USE_XRC=1 указва, че когато се използва библиотеката, ще бъде възможно да се използва форматът XRC за описание на интерфейса - формат, базиран на XML/

Ако отворите файла makefile.gcc, можете да видите други опции, които ви позволяват да изключите някои функции от библиотеката, например мразени от много ленти (USE_RIBBON). Като работите с такива параметри, може да сте в състояние да намалите размера на генерираните dlls, което е най-подходящо за компилация в монолитен режим.

9. Изчакваме компилацията да приключи. Този процес може да отнеме повече от 10 минути. За щастие, wxWidgets няма никакви зависимости от трети страни, така че компилацията обикновено е успешна. След като компилацията приключи, обектните файлове и dll ще бъдат създадени в папката C:\Library\wxwidgets\lib\gcc_dll\, тези, които са показани на снимките по-горе в стъпка 8.

Компилиране на проект с помощта на wxWidgets

Нека сега създадем тестов проект в Code::Blocks, за да се уверим, че wxWidgets компилира добре, и в същото време да настроим Code::Blocks да работи с тази библиотека. Тъй като тази среда за разработка вече езнае за съществуването на wxWidgets, тогава конфигурацията ще бъде минимална - ще трябва само да посочите пътя до папката с библиотеката.

10.1. Създайте нов проект. За да направите това, в Code::Blocks изберете елемента от менюто "Файл - Нов - Проект. ".

10.2. В диалоговия прозорец, който се отваря, в секцията „Проекти“, изберете типа проект „wxWidgets project“.

прозорец

10.3. Следващият диалогов прозорец няма голяма стойност - това е начален екран за този тип проекти. В долната част има квадратче за отметка, като поставите отметка в което ще се отървете от показването на този прозорец в бъдеще.

библиотеката

10.4. В следващия прозорец изберете версията на wxWidgets. За всички примери в тази статия използвах wxWidgets 3.0.2, така че изберете „wxWidgets 3.0.x“.

библиотеката

Ако нямате версията на wxWidgets, от която се нуждаете, в списъка, трябва да актуализирате Code::Blocks.

10.5. След това въведете името на проекта и пътя, където ще бъде създаден.

wxwidgets

прозорец

10.7. След това изберете инструмента, с който ще създадем интерфейса (група радиобутони „Предпочитан GUI Builder“). Обикновено предпочитам да създавам GUI ръчно (превключвател „Няма“), но можете да използвате инструмента за създаване на интерфейс с мишката.

В същия прозорец се избира типът на приложението („Тип приложение“): главният прозорец ще бъде диалогов („Базиран на диалог“) или цял прозорец („Базиран на рамка“). Първият тип е подходящ за малки приложения, докато диалогът не може да има лента на състоянието и главно меню.

компилиране

10.8. В следващия прозорец трябва да посочите пътя до библиотеката wxWidgets, където сте разопаковали изтегления архив.

библиотеката

10.9. Ако за първи път създавате проект, базиран на wxWidgets, тогава Code::Blocks ще ви покаже друг диалогов прозорец, където трябва да укажете пътя доwxWidgets отново. Това вече е необходимо за глобалните настройки на IDE.

компилиране

В този случай можете да посочите конкретни пътища, където имате вложени папки "включи", "либ" и т.н. Ако тези полета са оставени празни, ще се използват пътищата по подразбиране. Тези полета могат да бъдат полезни, ако преименувате, например, папката "lib", за да създадете друга папка "lib", компилирана с различни опции. Тъй като не направихме нищо подобно, ще оставим допълнителните полета празни.

В бъдеще тези параметри могат да бъдат променени, като изберете елемента от менюто „Настройки - Глобални променливи“.

10.10. След това трябва да зададем (или потвърдим) някои параметри за компилация - тип компилатор и папки за отстраняване на грешки и версии за освобождаване на компилацията на нашия проект.

Blocks

10.11. Следващият прозорец е по-интересен и важен.

компилиране

Тук трябва да зададем опциите, с които е компилирана библиотеката wxWidgets.

  • Ако опцията SHARED=1 е зададена по време на компилация, флагът "Use wxW >" трябва да бъде зададен.

10.12. Ако сте компилирали wxW библиотеката >

прозорец

10.11. Ако не сте компилирали wxWidgets като монолитна библиотека, ще се покаже друг прозорец, в който трябва да изберете кои пакети wxWidgets са ви необходими (в монолитен режим всички те се компилират в една dll).

Blocks

Можете да изберете няколко елемента в списъка (или да не изберете нищо).

10.12. След това съветникът за създаване на проект ще приключи работата си и ще бъде създаден нов проект.

Blocks

10.13. Сега можете да изберете целта за компилация (Release или Debug) в горния панел и да компилирате проекта (като изберете елемента от менюто „Build – Build“ или „Build – Rebuild“).

Проектът трябвакомпилира без грешки и може да се стартира с помощта на елемента от менюто "Build - Run". Резултатът ще изглежда така:

прозорец

10.14. След компилация проектът може да бъде стартиран от Code::Blocks без проблеми, но exe няма да бъде стартиран по обичайните начини (от файловия мениджър), защото няма необходимите dll от wxWidgets до exe. Можете да ги копирате от папката C:\Library\wxwidgets\lib\gcc_dll\ (или неин еквивалент, ако сте разопаковали wxWidgets в друга папка). Кои dll са необходими зависи от проекта. Но във всеки случай, когато стартирате компилирания exe файл, Windows ще изпише кой файл липсва.

Blocks

След като копирате необходимия dll-ok, програмата ще стартира.

Компилиране на библиотеката wxWidgets в Code::Blocks

МЕРСИ. Ако не бях намерил статията ви, сигурно щях да оплюя wxW />.

Компилиране на библиотеката wxWidgets в Code::Blocks

Благодарност! Всичко проработи!

танци с тамбура

Windows 10 е базиран на 8 и 8.1, така че какво, по дяволите, става с мен, правя всичко според инструкциите, обяснете по-подробен път, иначе не всичко е очевидно

танци с тамбура

не работи

Пробвах да компилирам версия 3.1.0 - не става. 1. Кълне се в липсата на Debug, но написа не като вашето предупреждение, но че Debug Target няма да бъде създаден. 2. Когато се опитвам да създам проекта, той казва, че файлът setup.h не съществува

Всички други настройки са същите като вашите.

трябва да работи

IMHO, трябва да проверите пътищата (Проект - Опции за изграждане. - Директории за търсене) и глобалните променливи (Настройки - Глобални променливи. - wx)

не е постстилов тест

грешка ld.exe не може да намери -lwxmsw30ud

Компилация от библиотекаwxWidgets в Code::Blocks

компилиран tdm-gcc 5.1, напълно отказа компилация, добавянето на опцията CXXFLAGS=-sdt=gnu++11 помогна

Не харесвам Unicode

Добър ден. Компилацията започна, но след това се казва „Unicode не е аз, това е вътрешна или външна команда, работеща програма или пакетен файл“ И нищо не беше създадено.