Dic 132018
 

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