LINUX.ORG.RU

Первая сборка Wxwidgets 3.0 на Ubuntu 16.04. Подводные камни.

 , , , ,


0

1

Здравствуйте, Unix братья. Вздумал сегодня сделать Hello world на популярном C++ gui тулките Wxwidgets 3.x. и есть несколько вопросов.

Поставил я значит в систему все эти GTK 3.0 кишки, на которых собственно и базируется wxwidgets:

$ sudo apt-get install libgtk-3-dev build-essential checkinstall

скачал исходники wx, распаковал, внутри создал директорию build-wx и из нее выполнил:

$ ../configure --disable-shared --enable-unicode

После все это дело , примерно 1 час собиралось и в итоге в директории wx-build создалось много объектных файлов *.о, примерно на 50mb весу, создалась директория lib, в которой есть *.а архивы (весом тоже на 50mb), создалась скрытая директория .pch , в которой *.gch файлов на 900mb. Ну и другие директории типо examples.

Итак такие вопросы: 1) куда нужно скопировать эту директорию wx-build, чтобы при сборке программы , не было ошибок, что заголовочные файлы не найдены ?

g++ basic.cpp `wx-config --cxxflags --libs std` -o program

2) зачем нужны файлы .gch , которые весят 900mb, и можно ли при сборке тулкита отказаться от компиляции этих файлов, чтобы собиралось быстрее?

3)в директории lib находятся архивы .a, в этих архивах сгруппированы объектные файлы, которые лежат по отдельности в корневой директории? Для чего будут нужны это большое количество объектных файлов, если они культурно укомплектованы в .a архивы и нужны ли они вообще будут, если в системе только эти .а архивы?

gch - это прекомпайлд хедеры, они нужны как раз чтобы собиралось быстрее

DELIRIUM ☆☆☆☆☆
()

1) куда нужно скопировать эту директорию wx-build, чтобы при сборке программы , не было ошибок, что заголовочные файлы не найдены ?

Но зачем? Ты хочешь сделать из своего дистрибутива слаку?

Здесь есть готовые репозитории с нужными пакетами для твоего дистра:

http://codelite.org/LiteEditor/WxWidgets31Binaries#toc2

Ставишь и пользуешься. Собирать WxWidgets руками не обязательно. Да судя по всему ты его и неправильно собрал, без динамических .so библиотек. Или получить статическую сборку WxWidgets и являлось целью ваших изысканий?

3)в директории lib находятся архивы .a, в этих архивах сгруппированы объектные файлы, которые лежат по отдельности в корневой директории? Для чего будут нужны это большое количество объектных файлов, если они культурно укомплектованы в .a архивы и нужны ли они вообще будут, если в системе только эти .а архивы?

Нет. Объектные файлы создались временно, чтобы потом запаковаться в статические либы .a

EXL ★★★★★
()
Ответ на: комментарий от EXL

Готовое то конечно можно скачать, но и Страуструпом от этого не станешь...

Да, при сборке не создаются динамические .so библиотеки, получается , когда при конфигурации указываешь флаг --disable-shared , то это говорит, что программа будет линковаться статически и без зависимостей запускаться

Получается , из всего нужно только .a архивы и .gch хедеры? И куда это в системе запихать, чтобы при сборке было норм. Я пока отправил все .а файлы в /usr/local/lib

NetSurf
() автор топика

The "--disable-shared" option instructs wxwidgets to builds static libraries instead of shared/dynamic ones.

NetSurf
() автор топика
Ответ на: комментарий от EXL

раз уж вы в курсе про codelight, заодно и спрошу :-)

кто из codelight/codeblocks более жив одновременно и в linux и windows ? периодически хочется однотипное лёгкое ide под обе системы, но вечная проблема с кучей компиляторов в оффтопик (mingw/64/vc). И «потыкать палочкой» wx бывает настрой, соотв. хочется чтобы он был поновее к обоих случаях :-)

ps/ vstudio и qt мимо проходящих просьба не предлагать :-)

MKuznetsov ★★★★★
()
Ответ на: комментарий от NetSurf

и .gch хедеры?

И .h хедеры.

Я пока отправил все .а файлы в /usr/local/lib

Это необязательно делать. Можно положить их куда угодно (например в /opt) и прилинковывать к проекту, когда потребуется.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

Code::Blocks более живой и функциональный, как мне кажется.

Но для C и C++ в GNU/Linux и Windows давно использую Qt Creator, достаточно легковесное и быстрое IDE.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.