In questi giorni a causa di una reinstallazione da zero di tutto il mio PC, ho approfittato per aggiornare le
WxWidgets dalla versione 3.0.4 alla più recente 3.1.1. A differenza di quanto scritto nella documentazione, ossia che il passaggio è indolore e caldamente consigliato, ho avuto un sacco di problemi a compilare i miei vecchi progetti in quanto ho avuto tutta una serie di errori sia con il compilatore che con il linker. Fra le altre proprio quando ho risolto tutti i problemi è uscita la versione 3.1.2, ma non l’ho nemmeno provata a scaricare. Dopo essermi accertato di avere le ultime versioni di CodeBlocks e di
MinGW ho cominciato a cercare soluzioni ai problemi incontrati. La farò breve anche se io ho perso due giorni interi per trovare le soluzioni. Alla compilazione dovete aggiungere 4 librerie che non vengono più incluse automaticamente, si tratta delle libuxtheme.a , liboleacc.a , libshlwapi.a e per finire la libversion.a. Per farlo avete due opzioni. La prima è da interfaccia grafica su CodeBlocks, da menu Project -> Build Options -> Linker Settings. Per ogni target disponibile, ad esempio Debug e Release o se non avete un progetto multiplatform potete usare direttamente le impostazioni generali di tutto il progetto, andate su Link Settings, premete su add e scrivete libuxtheme.a;liboleacc.a;libshlwapi.a;lalibversion.a. La seconda via è aprire il file .cbp di ogni progetto ed incollare
<Add library="libuxtheme.a" />
<Add library="liboleacc.a" />
<Add library="libshlwapi.a" />
<Add library="libversion.a" />
nelle relative sezioni. Nel mio caso la lista delle librerie incluse è la seguente:
<Add library="libwxmsw31ud.a" />
<Add library="libwxpngd.a" />
<Add library="libwxjpegd.a" />
<Add library="libwxtiffd.a" />
<Add library="libwxzlibd.a" />
<Add library="libkernel32.a" />
<Add library="libuser32.a" />
<Add library="libgdi32.a" />
<Add library="libwinspool.a" />
<Add library="libcomdlg32.a" />
<Add library="libadvapi32.a" />
<Add library="libshell32.a" />
<Add library="libole32.a" />
<Add library="liboleaut32.a" />
<Add library="libuuid.a" />
<Add library="libcomctl32.a" />
<Add library="libwsock32.a" />
<Add library="libodbc32.a" />
<Add library="libwxmsw31u.a" />
<Add library="libwxpng.a" />
<Add library="libwxjpeg.a" />
<Add library="libwxtiff.a" />
<Add library="libwxzlib.a" />
<Add library="libuxtheme.a" />
<Add library="liboleacc.a" />
<Add library="libshlwapi.a" />
<Add library="libversion.a" />
Faccio notare che le prime 4 terminano con “d” in quanto sono le librerie di debug, nella versione release ci saranno i corrispettivi “senza la d”. Spero che questo articolo possa essere utile a qualcuno per evitare tutti i mal di testa e le imprecazioni di questi due giorni.
Salva