Appunti di informatica by Carlo

PROGRAMMI CON INTERFACCIA A FINESTRE.
Ma come compilare wxSQlite3 ?

gif(Aggiornamento dell'articolo al 23/12/2023)

Archivio

Come promesso, ma con un po' di ritardo, metto in rete questo articolino-tutorial dove spiego come compilare la libreria per i database: wxSQlite3.
Vi sono in rete molte librerie per c++ adatte ad implementare database relazionali. Cito fra le altre mySql, ottimo e conosciuto database, usato molto spesso nei siti web dinamici ma non solo per quelli. Ve ne sono di più o meno conosciute ma quasi tutte efficienti e adatte allo scopo.
Se si usa la libreria wxWidgets per i propri progetti con interfaccia a finestre, prima o poi arriva l'esigenza di implementare anche un database sia per semplici archivi di nominativi, ma anche per i più complessi programmi contabili, dove bisogna intervenire su elenchi clienti e fornitori, prima nota ecc.
Ottima libreria a corredo è wxSQlite3 che funziona in accoppiata appunto a wxWidgets. Deriva, wxSQlite3, da quella per solo c++, cioè SQlite3.
Curata e sviluppata da Ulrich Telle, è affiancata da una ottima documentazione.
Mentre vi scrivo, è a disposizione la versione 4.9.7, ma con regolare frequenza vengono pubblicati nuovi aggiornamenti con correzioni e aggiunte molto gradite agli utenti del settore.
Prima cosa necessaria, bisogna scaricare dal sito: githubhttps://github.com/utelle/wxsqlite3/releases il wrapper nella versione: wxsqlite3-4.9.7. Successivamente dai miei progetti il file CPxSQ4.txt che andrebbe poi rinominato in CPxSQ4.cmd per poter essere utilizzato e avviato per la compilazione di wxSQlite3.
Come compilatori gli stessi usati per compilare le wxWidgets: compilatore (MINGW32 e MINGW64).
Attualmente con la versione wxWidgets-3.2.4 e windows 10, sono consigliati i seguenti compilatori:
i686-13.2.0-release-win32-dwarf-ucrt (per 32)
x86_64-13.2.0-release-win32-seh-ucrt (per 64)

Di seguito qui elenco gli altri passaggi necessari:
  • Eseguire CPxSQ4.cmd inserendo i dati richiesti ed eseguire tutte le voci;
  • Copiare le librerie dinamiche rispettive (dll) nella stessa cartella del vostro programmino oltre a quelle già copiate per le wxWidgets, a meno che optiate solo per la compilazione delle librerie statiche.
  • Eseguire un programma con wxSqlite3 e wxWidgets con quanto già visto scaricando:
    il materiale per Premake-5 (vedi spiegazioni anche in: "Come compilare le wxWidgets") e variando di conseguenza i dati che si trovano rispettivamente nelle prime righe del file premake5.lua, inserendo le giuste voci. Ciò anche in CM.cmd.
    Ricordatevi di cambiare l'estensione da CM.txt a CM.cmd.


A partire dalla versione, wxSQlite3.4.6.0, nel wrapper viene a mancare una cartella (sqlite3secure) perché il progetto è stato sdoppiato, vedi anche: https://github.com/utelle/SQLite3MultipleCiphers; la versione wxSQlite3.4.6.0 serve in ogni caso con progetti con interfaccia a finestre. Eseguire per questa e per le successive versioni, solo il file CPxSQ4.txt, rinominato in CPxSQ4.cmd file che ho provveduto ad aggiornare (16/07/2022) e che serve alla compilazione e di cui vi ho già parlato.
Se usate WxWidgets-3.2.0 e successivi, prima di compilare, là dove non è già stato fatto, cambiare numero versione 3.1 in 3.2 in tutti i punti del file in premake\wxwidgets.lua di wxsqlite3; inoltre sostituire 31 con 32 nel file build/config.gcc, così:
# Short version number of wxWidgets
wxShortVersionString ?= 32
png