View Full Version : [c++] Compilazione di applicazioni con wxWidgets su Ubuntu
Ho installato Code::Blocks ed ho provato a creare una applicazione di prova con wxWidgets. Ho eseguito il wizard e ho ottenuto una applicazione che non riesco a compilare. Il compilatore mi da infatti una lunga sfilza di errori di cui vi allego le prime righe.
||=== Hello_world_3, Debug ===|
/usr/include/wx-2.8/wx/cursor.h||In constructor ‘wxBusyCursorSuspender::wxBusyCursorSuspender()’:|
/usr/include/wx-2.8/wx/cursor.h|65|error: ‘wxIsBusy’ was not declared in this scope|
/usr/include/wx-2.8/wx/cursor.h|67|error: ‘wxBusyCursor’ has not been declared|
/usr/include/wx-2.8/wx/cursor.h|67|error: ‘wxSetCursor’ was not declared in this scope|
...omissis...
|=== Build finished: 50 errors, 0 warnings ===|
Penso che manchi qualcosa nell'ambiente ma non so cosa. Qualcuno può aiutarmi?
Grazie.
Antonio:muro:
In realtà non ho scritto una riga di codice. Mi sono limitato a compilare il prodotto finale del Wizard...
Antonio:muro:
Hai installato i pacchetti per lo sviluppo di wxWidgets che per la stessa versione che hai scelto nel wizard ?
Le istruzioni sono relative ad un sistema Ubuntu, quindi spero di beccarci, altrimenti le devi riportare al tuo sistema.
Suppongo che la versione sia la 2.8. Chiudi code::blocks.
Installa il pacchetto libwxgtk2.8-dev. Dai il comando:
sudo update-alternatives --config wx-config
e seleziona quella dove appare wxgtk.
A questo punto apri code::blocks, crea un nuovo progetto, seleziona la versione 2.8 e lascia tutte le altre opzioni su default, tranne quella che ti permette di scegliere di creare un dialog o una frame window (seleziona quella che vuoi).
Ora dovrebbe compilare.
Ho seguito le istruzioni alla lettera ma il risultato del build è il seguente:
-------------- Build: Debug in Hello_world_3 ---------------
Precompiling header: wx_pch.h
g++: wx-config: No such file or directory
cc1plus: error: unrecognized command line option "-fcflags"
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
Antonio
Controlla di aver installato questi pacchetti:
libwxbase2.8-0
libwxbase2.8-dev
libwxgtk2.8-0
libwxgtk2.8-dev
wx2.8-headers
wx-common
Se da shell immetti il comando:
wx-config
te lo trova ?
Il comando wx-config non mi restituisce nulla, a parte la lista di parametri da utilizare nel comando.
Antonio:muro:
Il comando wx-config non mi restituisce nulla, a parte la lista di parametri da utilizare nel comando.
Antonio:muro:
Comunque il comando c'è.
Dammi l'output di:
wx-config --cflags
wx-config --libs
I miei sono i seguenti:
$ wx-config --libs
-pthread -Wl,-Bsymbolic-functions -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8
$ wx-config --cflags
-I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
--cflags restituisce gli stessi valori, --libs invece:
-pthread -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8
Antonio:muro:
Prova ad andare in Project -> Build Options -> seleziona il nome del progetto sulla sinistra (sono le impostazioni comuni sia a debug che release) -> seleziona Compiler Settings -> Other Options
Dovresti trovarci l'output di wx-config --cflags, confermi ?
Ora seleziona Linker Settings, in Other Linker options dovresti trovare l'output di wx-config --libs...in tal caso aggiungi in cima o in fondo le differenze fra il mio e il tuo...cioè: -Wl,-Bsymbolic-functions
Anche se a vederle così non dovrebbero essere fodnamentali :confused:
No joy!
Non è che bisogna specificare qualche directory particolare nelle opzioni di build?
Le caselle relative sono vuote e la cosa mi sembra strana...:muro:
Antonio
Prova ad installare l'ultima build SVN di code blocks e l'ultima build di wxWidgets.
Aggiungi ai repository questi:
deb http://apt.jenslody.de/ any main
deb http://apt.wxwidgets.org/ hardy-wx main
Poi:
sudo apt-get update; sudo apt-get upgrade
Ancora per intrepid non ci sono, ma vanno comunque bene. Io ho quelli...probabilmente la differenza sta lì.
Ho seguito le tue indicazioni e ho fatto qualche progresso. Ho inserito in "Compile settings"->"Other options" wx-config --cxxflags e in "Search directories" ../../../../usr/include e ../../../../usr/lib e ottengo come risultato della comoilazione:
-------------- Build: Debug in Hello ---------------
Precompiling header: wx_pch.h
g++: no input files
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
:muro:
Antonio:cry:
Non ci siamo capiti, nei posti dove ti ho detto io ci dovresti già avere l'output dei comandi.
Nella tua configurazione esiste una directory /usr/lib/include/wx?
Antonio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.