wxWidgets + Code::Blocks + Ubuntu

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
Oksana
In need of some credit
In need of some credit
Posts: 3
Joined: Sun Mar 15, 2009 5:46 pm

wxWidgets + Code::Blocks + Ubuntu

Post by Oksana » Sat Jun 13, 2009 1:29 pm

По порядку:
1. собираем статическую библиотеку wxWidgets
cd wxGTK-2.8.10
mkdir gtk-release
cd gtk-release
../configure --enable-unicode --disable-shared
make
sudo make install
2. создаем новый проект в С::В
3. если при создании проекта выбираем статическую линковку то при компиляции вылезает "setup.h no such file", который лечим добавлением путей поиска /usr/local/lib/wx-2.8/...
4. после этого вылезает ошибка "No target! You should use wx-config for compiling options" (примерно)

вот это я уже побороть не смогла.
что интересно если я в консоли соберу проект вручную все работает:
g++ appTest.h appFrame.h appTest.cpp appFarme.cpp 'wx-config --version=2.8 --static=yes --cxxflags --libs' -o test
программа test вполне себе собирается и работает

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Post by Mojo » Sat Jun 13, 2009 7:17 pm

:D хорошее же вы занятие себе нашли Оксана :D романтичное :D
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Sat Jun 13, 2009 9:07 pm

Ммм.. зачем так сложно? в C::B в build options там есть настройки отдельно для debug и release, а есть общие (главная нода в дереве с таргетами). И вот там боубирать все лишние параметры у wx-config. Для компилятора поставить wx-config --cxxflags, а для линкера wx-config --libs. все остальные опции надо убрать. И будет счастье

Oksana
In need of some credit
In need of some credit
Posts: 3
Joined: Sun Mar 15, 2009 5:46 pm

Post by Oksana » Sun Jun 14, 2009 4:32 am

так оно, конечно, собирается, но линкуется то не статически? ( по крайней мере размер тестового проекта всего 47КБ, а при сборке из командной строки с wx-config --static=yes размер достигает почти 2 МБ )

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Sun Jun 14, 2009 7:51 am

эээ. а мне почему-то всегда казалось что для того чтобы слинковать все добро в бинарник, флага --disable-shared будет мало. попробуй собрать wx с --enable-static --disable-shared. последний флаг вродепросто говорит что нам при сборке не нужны .so файлы, а первый как раз о статической линковке.

Oksana
In need of some credit
In need of some credit
Posts: 3
Joined: Sun Mar 15, 2009 5:46 pm

Post by Oksana » Sun Jun 14, 2009 5:47 pm

ага, про --enable-static я уже прочитала у Бегемота :)
однако, ключевой фактор - проект СОБИРАЕТСЯ из командной строки.

проблему удалось решить следующим образом:
1. открываем проект в тескстовом редакторе
2. запускаем терминал
3. в терминале набираем wx-config --version=2.8 --static=yes --unicode=yes --debug=no --cflags ( или что там в проекте )
4. заменяем выводом предыдущей команды соответствующую строку в проекте в секции <compiler>
5. аналогично для секции <linker> заменяем `wx-config --version=2.8 --static=yes --unicode=yes --debug=no --libs` выводом соответствующей команды
6. все закрываем и собираем проект в С::В! вуаля!

как я думаю, проблема в
<Add option="`wx-config --version=2.8 --static=yes --unicode=yes --debug=no --cflags`" />
<Add option="`wx-config --version=2.8 --static=yes --unicode=yes --debug=no --libs`" />
почему то это фигня не срабатывает, причем не срабатывает именно при наличии --static=yes

Post Reply