Меню Рубрики

Wxwidgets установка под windows

Сборка библиотеки wxWidgets под ОС Windows

В установке wxWidgets под ОС Windows нет ничего сложного, главное следовать приведенной ниже инструкции. Перед сборкой wxWidgets необходимо установить компилятор C++ (MinGW) и командную среду MSYS (т.е. то, в чем мы будем собирать). Ссылки на все необходимые файлы приведены в конце статьи.

В качестве компилятора можно выбрать несколько вариантов, мы остановим свой выбор на MinGW (Minimalist GNU for Windows) (www.mingw.org) — минимальный порт (т.е. минимальное количество библиотек, необходимое для сборки приложений в среде Windows) стандартного в среде GNU/Linux компилятора GCC (GNU Compiler Collection). Данный компилятор независим и в нем можно писать консольные приложения на C/C++ и без wxWidgets (более того, они будут переносимы на GNU/Linux). Для минимальной установки нам потребуются следующие пакеты:

  • gcc-core-3.4.5-20060117-3.tar.gz — ядро GCC 3.4.5
  • gcc-g++-3.4.5-20060117-3.tar.gz — С++
  • binutils-2.19.1-mingw32-bin.tar.gz — набор бинарных GNU утилит (линковщик, ассемблер, архиватор и т.д.)
  • MinGW Runtime: mingwrt-3.15.2-mingw32-dev.tar.gz и mingwrt-3.15.2-mingw32-dll.tar.gz
  • w32api-3.13-mingw32-dev.tar.gz — библиотеки и заголовочные файлы WinAPI

Архивы распаковываем в папку на C диске C:\mingw. Для удобства установки, мы подготовили архив с уже собранной папкой mingw. Все, что нужно сделать — распаковать архив в корень диска C. Установка компилятора завершена.

Установим среду для работы с компилятором MinGW. В качестве командной оболочки воспользуемся MSYS: A Minimal SYStem минимальная система с POSIX (Portable Operating Systems Interface — Интерфейс переносимых операционных систем) совместимым Борн/Bourne шеллом представляет собой коллекцию UNIX-команд необходимых для полноценной работы с компилятором MinGW, хотя и не ограничивается только им.

Необходимо три пакета:

  • MSYS-1.0.10.exe — MSYS
  • msysDTK-1.0.1.exe — инструментарий разработки
  • msysCORE-1.0.11-2007.01.19-1.tar.bz2 — обновление

Последовательно запускаем файлы и следуем указаниям программы, а архив распаковываем в папку C:\msys. MSYS запускается через соответствующую иконку на рабочем столе. Прописываем в переменной окружения PATH пути до исполняемых файлов C:\mingw и C:\msys (Панель управления → Система → Дополнительно → Переменные среды).

Установка завершена, осталось только проверить, что все установилось правильно. Для этого набираем (в папке C:\msys\1.0\home) программу (hello.c):

Собираем ее с помощью команды gcc hello.c и получаем файл a.exe . Запускаем его и смотрим результат (вывод в консоле строчки Hello, world. ). Замечательно! Теперь у вас есть компилятор C++ и рабочая среда.

Перейдем к установке wxWidgets. Для этого распаковываем архив и исходными кодами в папку C:\ (в архиве уже есть папка wxMSW-2.8.9). Запускаем MSYS и переходим в каталог C:\wxMSW-2.8.9 командой cd c:wxMSW-2.8.9 (учтите, что здесь важен регистр, т.е. wxMSW и wxmsw — это разные папки).

Следующий шаг — сборка библиотеки. Проявляя чудеса дальновидности, мы проведем сборку в двух конфигурациях: отладочной (debug) и окончательной (release). Но, для начала, рассмотрим основные опции, которые влияют на сборку библиотеки (в дальнейших примерах вы можете менять опции на те, что вам больше всего подходят):

  • Release/Debug. Debug конфигурация добавляет информацию, необходимую для отладки программы. Release верия содержит опции оптимизации и используется для окончательной сборки программы. Рекомендуется всегда делать отладку программы в Debug-версии.
  • Unicode/Non-Unicode — включить поддержку уникодов или нет. Включение уникодов позволяет использовать национальные языки (а не только английский). Отключение уникодов не дает дополнительных преимуществ,
  • Static/Shared. Static — сборка идет с включением библиотек в исполняемый файл и позволяет делать независимые приложения. Shared — размер файла будет меньше за счет того, что библиотеки не включаются в программу, но появляется зависимость от внешних библиотек, которых у пользователя может и не оказаться.
  • Multi-lib/Monolithic. Multi-lib — создается несколько библиотечных файлов (по области применения). Monolithic — создается один файл, включающий все функции.

Полный список опций вы можете получить по команде wx-config —help (предварительно зайдите в папку с исходниками wxWidgets cd c:wxMSW-2.8.9 ).

Процесс сборки библиотеки стандартный для ОС GNU/Linux: сначала идет конфигурация (скрипт configure), потом сборка (make) и установка (make install). Начнем с debug-сборки. Переходим в папку с исходниками cd c:wxMSW-2.8.9 , создаем папку debug mkdir debug , переходим в нее cd debug и запускаем конфигурационный скрипт (напоминаем, что вы можете указать опции под свои предпочтения, за исключением опции —enable-debug ):

Конфигурация займет некоторое время (несколько минут) и в конце появится табличка с параметрами. Далее запускаем команду сборки make (сборка может занять очень много времени — 30 мин и дольше, не паникуйте) и установки make install (эта команда копирует все необходимые файлы и библиотеки в каталог с компилятором). Для проверки работоспособности запустим один из примеров. Переходим в соответствующий каталог cd ../samples/minimal , собираем пример make и запускаем minimal.exe . В примерах сборка идет через Makefile — файл с параметрами сборки.

Создадим теперь собственную программу (уже в вашей рабочей папке C:\msys\1.0\home). Создаем файл hello.cpp (объяснение работы этого примера будет в следующей статье):

Для сборки используем команду g++ hello.cpp `wx-config —debug —libs —cxxflags` -o hello.exe . Следует обратить внимание на кавычки — это мягкие кавычки (обратные, там, где клавиша ‘ё’) и не следует их путать с прямыми (где клавиша ‘э’). В результате получим программу hello.exe. Так как библиотеки сконфигурированы на режим отладки, то и размер исполняемого файла получается огромным (>20Мб).

Для Release-сборки повторяем всю процедуру, только создаем папку release и конфигурируем командой

Источник

Блог разработчика

Recent Comments

Recent Posts

Обо мне

Categories

Осваиваем wxWidgets: серия первая – установка под Windows.

September 21st, 2007 Begemot Posted in Программирование

“Ох, нелегкая это работа, из болота тащить бегемота” (с)

Скромная попытка описать свой опыт установки и начала работы с wxWidgets бесплатной кроссплатформенной библиотекой.

Последнии несколько дней имел длительный полов опыт сборки, установки и настройки этой библиотеки. Компиляции проектов под разными IDE, разными компиляторами, и в разных осях.

Все началось с того что я вновь (после двухмесячного перерыва) взялся осваивать wxWidget, с которой свзяваю надежды на долгое и плодотворное сотрудничество, а может даже и безбедную старость. В этот раз начал с того что выкачал и собрал новую версию – 2.8.5. После этого почему-то перестал собиратся мой тестовый проект. Вообщем меня это подтолкнуло к более глубокому разбирательству что и как нужно делать. После почти двух дней, возни благодаря помощи TRex’a, вроде как оно работает. Решил поделится результами, может кого-то избавит от граблей, а мне прибавит пару очков к карме

Disclaimer: все что описанно ниже это не правильный вариант установки и настройки wxWidgets, а просто вариант который заработал у меня.

Компилируем wxWidgets под Windows.

Решив перейти с MFC на wxW я решил заодно и сменить студию на Code::Blocks. Он бесплатен, os, написан на wxW соответственно есть версия для как для винды так и для линукса (а так же неофициальные билды для MAC OS) – все таки работать в одной среде под разными ОС вместо двух разных мне кажется удобнее. Для Code::Blocks скачал и поставил компилятор MinGW (Хотя сама среда поддерживает практически любой компилятор который вы захотите). Решите попробывать Code::Blocks – ставьте только ночной билд (искать на форуме), но не официальный RC2.

Качаем исходники wxWidgets, достаем из архива и ложим на постоянное место жительства (у меня в пике занято было почти 2Гига места, учтите), у меня это E:\Const\wxWidgets-2.8.5\. Смотрим нет ли патчей на самую свежею версию, на 2.8.5 уже есть один – качаем и ставим.

Собираем wxWidgets с использование MinGW.

Читаем INSTALL-MSW.txt в корневом каталоге. дальше компилируем с помощью make файла, идем в E:\Const\wxWidgets-2.8.5\build\msw\ и выполняем

mingw32-make -f makefile.gcc BUILD=debug UNICODE=1

Остальные опции остаются по умолчанию, минут через 10 получаем статическую не монолитную юникодную дебаг версию библиотеки. Дальше меняем debug на release (BUILD=release) и получаем релиз версию.

Еще есть опция MSLU=1 судя по хелпу включает поддержку Microsoft Layer for Unicode, в этом случае можно будет собирать приложения для работы под 98 с поддержкой юникода. Вроде бы нечего плохого быть не должно, но я решил пока компилить без нее, на всякий случай

Visual Studio 2005 или VC Express.

В принципе Code::Blocks производит достаточно приятное впечетление, за исключением одной вещи. У меня возникло чуство что юниксовский дебагер gdb – не совсем отвечает моим представлениям об удобстве и функциональности хорошего дебагера (мы молодежь развращенны Visual Studio). Правда говорят можно прикрутить дебагер от MS, незнаю, пока не пробывал. И я стал смотреть в сторону VC Express: Лицензионно чисто так как бесплатно(и даже Visual Assist не нужен), и по слухам довольно удобно, и главное отладчик хороший:). Вообщем я решил что ничего плохого не будет если под виндой я возможно буду работать в экспрессе. Хотя я его только сегодня поставил и еще совсем не опредился что же будет использоватся как основное IDE.

Открываем проект E:\Const\wxWidgets-2.8.5\build\msw\wx.dsw, конвертим его в новый формат. Дальше есть два пути первый просто скомпилить все проекты как предлагают разработчики библиотеке, второй – изменить динамическую линковку на статическую как предлагает TRex в своих видео-туториалах по сборке wxWidgets и настройке разных IDE. По слухам второй вариант лучше так как генерируемые ехе гарантированно работают везде, хотя расплачиваться за это приходится увеличенным размером файла. Так как у меня уже был печальный опыт с динамической линковкой MFC… вообщем делаем вот что (краткое резюме для тех кто не хочет смотреть видео):

  1. Выбираем все файлы в дереве проектов и жмем alt-f7
  2. С++ -> Code Generation -> Runtime Library -> меняем /MD на /MT для релиза и /MDd на /MTd для дебага.

Имейте ввиду что менять нужно для нужной вам конфигурации, я себе собирал статическую юникодную версию (Unicode Debug и Unicode Release) именно для них и меняем. Собираем оба варианта.

Дальше копируем файл include/wx/msw/setup.h в include/wx/setup.h

Не забываем прописать в VC++ Directories $(WXWIN)/include и $(WXWIN)/lib/vc_lib.

Вроде ничего не забыл.

Очистка

После всего этого папка с wxWidgets занимает 1.5+G. Проблемой очистки я заинтересовался, когда хотел рядом с 2.8.4, поставить параллельно 2.8.5. Первый вариант был такой

В корневом каталоге вхВ. Удаляем все временные файлы VC компилятора и *.o для MinGW. Вариант оказался неудачным посколько *.pdb точно нужны для отладки, а *.manifest и некоторые другие расширения присутсвуют в самой поставки wxWidgets.

Второй раз я был более осторожен и решил удалить только папки vc_mswud и vc_mswu в E:\Const\wxWidgets-2.8.5\build\msw\.Там лежат obj и pch, которые занимают дофига места (600 метров). Я не совсем уверен хорошая ли это идея убить pcompiled headers – так как слегда слаб в теории, но рискнул. Также в корзину идет wx.ncb расположенный чуть выше.

Что чистить после MinGW? Точно не знаю, в папке E:\Const\wxWidgets-2.8.5\build\msw\gcc_mswud и gcc_mswu я вижу только *.o и *.o.d файлы. Что это в гугле я не нашел (ужас!). Но эксперементальным путем выяснил что удаление этих двух папок, ни компиляции ни отладки тестового проекта не мешает, зато прибаляет нам 400 метров.

И так: удаляем в папке E:\Const\wxWidgets-2.8.5\build\ файл wx.ncb, и подпапки gcc_mswud, gcc_mswu, vc_mswud и vc_mswu. В итоге все занимает 680 метров, из котрых 600 это либы которые мы только что скомпилили и отладочная инфорация, остальное исходники и скрпиты компиляции. Вообщем ничего лишнего.

Пока все. Но в переди еще настройка проектов для VC Express и Code::Blocks with MinGW, компиляция библиотеки и тестового приложения на линуксе. Вообщем прощаюсь не на долго

19 Responses to “Осваиваем wxWidgets: серия первая – установка под Windows.”

опупеть… риалбейсик рулит 🙂

Ага, REALbasic рулит (сам пользуюсь), но мне и wxWidgets нравится. Вот только все эти проблемы со сборкой… Ужас как неудобно.

Niko – проекты в студию 🙂

Алексей, проблемы как я подозреваю только поначалу и только у таких тормозов как я, которые никогда ничего подобного не собирали и ленятся читать справку:) сейчас немного разобравшись и имея записанную последовательность действий – поставлю быстро. Хотя посмотрим, посмотрим мне скоро под мак ставить:)
Хотя теперь я знаю 1 хинт – можно поставить ДиалогБлокс – и там визуально выбрать опции нужные и он скомпилит.

Кстати, да. Буквально вчера использовал DIalogBlocks для компиляции wxWidgets под Windows. Я скомпилировал с помощью Borland C++. Сборка прошла нормально, проекты приложений, созданных в DialogBlocks тоже в основном компилируются нормально, а сборка Samples из командной строки завершается неудачно.

Под Линуксом еще не пробовал. Мака пока, увы, нет, но очень хочется заиметь.

Кстати, есть хороший бесплатный аналог DialogBlocks. Называется wxFormBuilder. Он не такой фичастый, как DialogBlocks, но как редактор форм в общем очень даже ничего. Есть версия под Windows и под Linux, вроде бы есть неофициальная сборка под Мак. Они как раз сейчас озадачились улучшением поддержки Мака.

>а сборка Samples из командной строки завершается неудачно.

А как саму библиотеку компилили. Я собирал статичиский юникодный билд, а все примеры которые там идут имеют проекты для shared ansi (если не путаю), ну вообщем перед тем как скомпилить проект необходимо менять его настройки сначала. Может поэтому с командной строки не собирается?

По поводу wxFormBuilder даже не знаю, я так медленно осваиваю новое:( Мне сильно хвалили ДиалогБлокс, как самые фичастый, самый лучший (все таки от автора библиотеки) и единственный который AUI поддерживает, вообщем сказали что своих денег стоит и на другие лучше не смотреть… Вот сейчас осваиваю его, освоюсь с ним и с самой библиотекой – попробую посмотреть на wxFormBuilder. Но wxGlade и wxSmith мне не особо понравились, хотя может я просто не понял – и надо было сначала хоть что-то ручками написать прежде чем их смотреть.

Я вроде бы те же параметры указывал при компиляции примеров из командной строки, что и при компиляции библиотеки при помощи DialogBlocks (UNICODE=1, BUILD=release). Может быть, еще какие-то параметры надо было указать. Но вообще, скорее всего, именно в них все дело. Надо будет еще покопаться.

DialogBlocks действительно хорош, и AUI, скорее всего, только он поддерживает, да еще и custom classes. Вот если бы он еще генерировал не только C++, но и Python, цены бы ему не было!

wxGlade я использовал в одном простеньком проекте, который был написан на wxPython. Я им вопользовался, потому что он позволяет использовать custom classes. wxSmith я не очень внимательно рассматривал.

Кстати, Code::Blocks поддерживает и wxSmith, и wxFormBuilder. Раньше поддерживал только wxSmith.

хм, посмотрел действительно диалог блокс питон не поддерживает напрямую, плохо:( Правда в хелпе есть
“Although DialogBlocks does not generate wxPython code, it’s straightforward to use the XRC files that DialogBlocks generates with your own wxPython programs.” но все равно это конечно не то что генерация питон кода.
Посмотрю wxFormBuilder, если не решу плюнуть на програмирования и уйти в онлайн проекты 🙂

Да, XRC можно использовать и в C++, и в Python.

wxFormBuilder, как и DialogBlocks, генерирует код и в C++, и в XRC. Правда, авторы wxFormBuilder предупреждают, что в XRC можно сделать не все, что можно в XRC. Для табличного компонента, например, нет готовых XRC handlers.

[…] же это мой первенец с новой для меня библиотекой wxWidgets. Если получится – портирую на макос и […]

Случайно наткнулся на Ваш блог в Гугле. Я имею небольшой опыт работы с wxWidgets, сделал пару небольших проектиков под Windows (VS 2003) и Suse Linux. Меня вот интересует следующая проблема.
Предположим, существует огромное количество программ на MFC, которые неплохо было бы портировать под wxWidgets. Сразу же возникает вопрос: файлы ресурсов под MFC и вообще под Windows API лежат в текстовых файлах специального формата (res), а для wxWidgets нужны ресурсы в XRC формате. Так вот, существует ли в природе конвертор RES-XRC?

Честно говоря я не так давно работаю с вхВ. Еще не специалист. но пока не встречал. Вообще в доке есть раздел по поводу перевода мфц приложения на вхВ, может быть там посмотреть.

Доброго времени суток, Николай!
Понадобилось написать небольшой проект с использованием ui.
Смотрел в сторону mfc, но что-то не вдохновило:) К тому же хочется чтобы ui библиотека была кросс-платформенной и желательно open-source. wxWidget идеально подходит под описание:) Единственное после прочтения документации с оф. сервера остался один вопрос. Подскажите пожалуйста, необходимо ли устанавливать библиотеку wxWidget на том компьютере, на котором будет исполняться бинарник? или возможно в комплект с основной программой включить dll файл, реализующий функциональность библиотеки? Заранее спасибо за ответ.
P.S.
С наступающим НГ:)

Нет, устанавливать не надо. Про вариант длл говорить не буду – не использовал, но думаю проблем нет. Я компилирую статически все – таким образом кроме ехе ничего не надо. В качестве примера можете глянуть http://blogovodstvo.com/ – это мой первенец на wxWidgets должен запустится без ничего по идее:)
Спасибо, вас так же!

Началь изучать С++ и выбрал кодблокс тепер хучу создать приложения с WXWidgets но при компиляцие выдается ощибка

Закачал пару видео уроков, не помогает

В чем дело? Немонимаю!

||=== wxtest, Debug ===|
obj\Debug\wxtestApp.o||In function `_ZN9wxtestAppD0Ev’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.text+0x45)||undefined reference to `__imp___ZN12wxAppConsole17CheckBuildOptionsEPKcS1_’|
obj\Debug\wxtestApp.o||In function `WinMain’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp|287|undefined reference to `__imp___Z7wxEntryP11HINSTANCE__S0_Pci’|
obj\Debug\wxtestApp.o||In function `_ZN9wxtestApp6OnInitEv’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp|26|undefined reference to `__imp___ZN6wxIconC1ERK8wxStringlii’|
obj\Debug\wxtestApp.o||In function `_ZN9wxtestAppD0Ev’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.text$_ZN9wxtestAppC1Ev[wxtestApp::wxtestApp()]+0xd)||undefined reference to `__imp___ZN5wxAppC2Ev’|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.text$_ZN12wxAppConsole11GetInstanceEv[wxAppConsole::GetInstance()]+0x4)||undefined reference to `__imp___ZN12wxAppConsole14ms_appInstanceE’|
)]+0x7)||undefined reference to `__imp___ZN12wxStringBase4nposE’|
)]+0x27)||undefined reference to `__imp___ZN12wxStringBase8InitWithEPKcjj’|
)]+0x7)||undefined reference to `__imp___Z11wxGetLocalev’|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.rdata$_ZTV9wxtestApp[vtable for wxtestApp]+0x44)||undefined reference to `wxApp::Initialize(int&, char**)’|
)())]+0x5)||undefined reference to `__imp___ZN12wxAppConsole12ms_appInitFnE’|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.text$_ZN9wxtestAppD1Ev[wxtestApp::

wxtestApp()]+0x16)||undefined reference to `__imp___ZN5wxAppD2Ev’|
C:\CodeBlocks\CBlocks\wxtest\wxtestApp.cpp:(.text$_ZN9wxtestAppD0Ev[wxtestApp::

wxtestApp()]+0x16)||undefined reference to `__imp___ZN5wxAppD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameC2EP7wxFrameRK8wxString’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxFrameNameStr’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxDefaultSize’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxDefaultPosition’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|59|undefined reference to `__imp___ZN9wxMenuBarC1Ev’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|73|undefined reference to `__imp__wxStatusLineNameStr’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|75|undefined reference to `__imp___ZN7wxFrameD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameC1EP7wxFrameRK8wxString’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxFrameNameStr’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxDefaultSize’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|56|undefined reference to `__imp__wxDefaultPosition’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|59|undefined reference to `__imp___ZN9wxMenuBarC1Ev’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|73|undefined reference to `__imp__wxStatusLineNameStr’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|75|undefined reference to `__imp___ZN7wxFrameD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameD2Ev’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|82|undefined reference to `__imp___ZN7wxFrameD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameD1Ev’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|82|undefined reference to `__imp___ZN7wxFrameD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameD0Ev’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|82|undefined reference to `__imp___ZN7wxFrameD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrame7OnAboutER14wxCommandEvent’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|98|undefined reference to `__imp___Z12wxMessageBoxRK8wxStringS1_lP8wxWindowii’|
obj\Debug\wxtestMain.o||In function `_Z41__static_initialization_and_destruction_0ii’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|48|undefined reference to `__imp___ZN7wxFrame13sm_eventTableE’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|48|undefined reference to `__imp___ZN16wxEventHashTableC1ERK12wxEventTable’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|52|undefined reference to `__imp__wxEVT_CLOSE_WINDOW’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|52|undefined reference to `__imp__wxEVT_COMMAND_MENU_SELECTED’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|52|undefined reference to `__imp__wxEVT_COMMAND_MENU_SELECTED’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|52|undefined reference to `__imp__wxEVT_NULL’|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|48|undefined reference to `__imp___ZN16wxEventHashTableD1Ev’|
obj\Debug\wxtestMain.o||In function `_ZNK12wxWindowBase7IsShownEv’:|
)]+0x22)||undefined reference to `__imp___ZN12wxStringBase10ConcatSelfEjPKcj’|
wxItemKind)]+0x31)||undefined reference to `__imp___ZN14wxMenuItemBase3NewEP6wxMenuiRK8wxStringS4_10wxItemKindS1_’|
long)]+0x59)||undefined reference to `__imp___ZTV6wxMenu’|
long)]+0x7e)||undefined reference to `__imp___ZN6wxMenu4InitEv’|
long)]+0xcc)||undefined reference to `__imp___ZN10wxMenuBaseD2Ev’|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN18wxAcceleratorArrayD1Ev[wxAcceleratorArray::

wxAcceleratorArray()]+0xd)||undefined reference to `__imp___ZN18wxBaseArrayPtrVoidD2Ev’|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN18wxAcceleratorArrayC1Ev[wxAcceleratorArray::wxAcceleratorArray()]+0xd)||undefined reference to `__imp___ZN18wxBaseArrayPtrVoidC2Ev’|
long)]+0x3c)||undefined reference to `__imp___ZN12wxEvtHandlerC2Ev’|
long)]+0x4d)||undefined reference to `__imp___ZTV10wxMenuBase’|
long)]+0x9d)||undefined reference to `__imp___ZN10wxMenuBase4InitEl’|
obj\Debug\wxtestMain.o||In function `_ZN11wxtestFrameC2EP7wxFrameRK8wxString’:|
C:\CodeBlocks\CBlocks\wxtest\wxtestMain.cpp|55|undefined reference to `__imp___ZN12wxEvtHandlerD2Ev’|
obj\Debug\wxtestMain.o||In function `_ZNK12wxWindowBase7IsShownEv’:|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN14wxMenuItemListD1Ev[wxMenuItemList::

wxMenuItemList()]+0x16)||undefined reference to `__imp___ZN10wxListBaseD2Ev’|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN10wxListBaseC2E9wxKeyType[wxListBase::wxListBase(wxKeyType)]+0x44)||undefined reference to `__imp___ZTV10wxListBase’|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN10wxListBaseC2E9wxKeyType[wxListBase::wxListBase(wxKeyType)]+0x5b)||undefined reference to `__imp___ZN10wxListBase4InitE9wxKeyType’|
C:\CodeBlocks\wxWidgets\include\wx\window.h:(.text$_ZN8wxObjectD2Ev[wxObject::

wxObject()]+0xa)||undefined reference to `__imp___ZTV8wxObject’|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options…|
||=== Build finished: 50 errors, 0 warnings ===|

[…] Ссылка на пост в моем основном блоге про установку wxwidgets под Windows для Visual Studio 2005, VC Express и MinGW. […]

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Wxwidgets codeblocks установка windows
  • Wxpython как установить windows
  • Www zenitbet 59 windows
  • Www windows 10 официального сайта
  • Www windows 7 максимальная