Compilare wxWidgets

Il progetto wxwidgets è davvero fenomenale: un immenso framework di librerie cross-platform che consente di creare facilmente applicativi c++, facili e di bell’aspetto.

Prima di utilizzarli è necessario compilarli, per ottenere librerie dll e lib da usare con il compilatore visual c++.

Infatti, pur essendo disponibili delle librerie preconfezionate, sul sito wxwidgets.org, queste non sempre sono adatte al compilatore che si sta usando. Ricordo, infatti, che i file lib necessari per la compilazione con librerie statiche e dinamiche sono dipendenti dal compilatore in uso.

Per usarle con visual c++ è sufficiente aprire il progetto visual studio che si trova nel direttorio build/msw/wx_vc16.sln (o quello corrispondente alla versione del compilatore in uso). Se non esiste la soluzione adatta al proprio compilatore, se ne può aprire una di una versione precedente e chiedere al compilatore di aggiornarla alla versione corrente.

Una volta aperto il progetto è necessario impostare la versione (Debug DLL o Release Dll) che si vuole compilare, a seconda che si voglia anche effettuare il debug con i simboli della libreria e successivamente l’architettura (x86 o x64).

A questo punto è sufficiente dare il comando di compilazione e alla fine del processo di compilazione si ritroveranno le dll e i file lib di tutte le librerie wxwidgets nel direttorio lib/vc_x64_dll. Per comodità io rinomino il direttorio aggiungendo anche il numero di versione del compilatore (vc142_x64_dll) per poter tenere distinte e ben comprensibili le varie versioni compilate.

Questo direttorio va aggiunto al PATH di sistema per le dll, e al progetto dove si trova indicato i path delle librerie.

Per i file include si possono fornire i path include, dove sono presenti sia i file msvc che quelli standard.

A quel punto si possono utilizzare le librerie.

Compilazione di wxWidgets

Per utilizzare le classi dell’ottimo framework wxWidgets, è conveniente scaricare i sorgenti dall’apposito sito e compilare le dll e i file lib per poterli utilizzare con la corretta versione di Visual Studio.

Ogni versione di Visual studio, infatti, utilizza un tipo diverso di file lib per le librerie, pertanto è necessario utilizzare quelli generati per la propria versione.

Per la compilazione è necessario avviare il prompt dei comandi di visual studio, corrispondente alla cpu per cui si intende compilare (x86 oppure x64).

Poi si deve andare nel direttorio %wxWidgets%\build\msw e da qui lanciare il seguente comando:

nmake /a /f makefile.vc SHARED=1 TARGET_CPU=X64 COMPILER_VERSION=142

Questa istruzione andrà a compilare l’intero framework di dll che servono per il target scelto, creando la directory vc142_x64.dll dentro %wxWidgets%\lib .

Per qualche motivo non compreso, wxWidgets continua a caricare le dll in debug dalla directory vc110_x64.dll, pertanto è necessario rinominare la cartella. Nel file setup.h attuale è necessario impostare il path con cui il framework va a cercare le dll, in quanto attualmente non viene considerato visutal studio 2019. Il file da modificare è: include\msvc\wx\setup.h e la riga è la 69. Bisogna cambiare da vc141 a vc110 nel caso di _MSC_VER >= 1910.