PDA

View Full Version : [c++] Compilazione di applicazioni con wxWidgets su Ubuntu


dileoa
16-11-2008, 19:49
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:

cionci
16-11-2008, 23:41
Metti il codice...

dileoa
18-11-2008, 07:49
In realtà non ho scritto una riga di codice. Mi sono limitato a compilare il prodotto finale del Wizard...
Antonio:muro:

cionci
18-11-2008, 08:06
Hai installato i pacchetti per lo sviluppo di wxWidgets che per la stessa versione che hai scelto nel wizard ?

cionci
18-11-2008, 08:39
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.

dileoa
23-11-2008, 17:46
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

cionci
23-11-2008, 17:52
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 ?

dileoa
24-11-2008, 12:04
Il comando wx-config non mi restituisce nulla, a parte la lista di parametri da utilizare nel comando.
Antonio:muro:

cionci
24-11-2008, 12:11
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

dileoa
25-11-2008, 19:31
--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:

cionci
26-11-2008, 07:44
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:

dileoa
26-11-2008, 19:42
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

cionci
26-11-2008, 19:45
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ì.

dileoa
29-11-2008, 17:03
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:

cionci
29-11-2008, 17:12
Non ci siamo capiti, nei posti dove ti ho detto io ci dovresti già avere l'output dei comandi.

dileoa
30-11-2008, 17:46
Nella tua configurazione esiste una directory /usr/lib/include/wx?
Antonio