Compilare la libreria FFTW3 all'interno di QT5
-
Ciao,
vorrei porre una domanda che riguarda più in generale la compilazione di codice sorgente C/C++ rilasciato per i vari sistemi operativi.
Come nel caso della FFTW3 (www.fftw.org), il codice sorgente deve essere compilato su ciascun sistema operativo (tipicamente con gli script configure, make e sudo make install) e poi la libreria deve essere linkata dinamicamente nel proprio codice.
Al contrario, vorrei chiedere come includere nel mio progetto il codice sorgente della libreria e poi compilare lo stesso tramite Qt5 sui vari sistemi operativi.
Nello specifico non mi è chiara la strategia migliore da usare ossia creare un sotto-progetto relativo alla libreria oppure aggiungere una libreria C++ ed aggiungere successivamente i file esistenti .h/.c/.cpp oppure includere al progetto principale il codice della libreria (facendo uso dei file .pri).
Quello che non mi è chiaro è come si possono usare i vari script (di configurazione e del make) per fare in modo che il codice possa essere compilato correttamente tramite Qt5 evitando la build separata su ciascun sistema operativo.Vi ringrazio per ogni eventuale indicazione
Saluti
Enzo Stefanazzi -
Ciao,
vorrei porre una domanda che riguarda più in generale la compilazione di codice sorgente C/C++ rilasciato per i vari sistemi operativi.
Come nel caso della FFTW3 (www.fftw.org), il codice sorgente deve essere compilato su ciascun sistema operativo (tipicamente con gli script configure, make e sudo make install) e poi la libreria deve essere linkata dinamicamente nel proprio codice.
Al contrario, vorrei chiedere come includere nel mio progetto il codice sorgente della libreria e poi compilare lo stesso tramite Qt5 sui vari sistemi operativi.
Nello specifico non mi è chiara la strategia migliore da usare ossia creare un sotto-progetto relativo alla libreria oppure aggiungere una libreria C++ ed aggiungere successivamente i file esistenti .h/.c/.cpp oppure includere al progetto principale il codice della libreria (facendo uso dei file .pri).
Quello che non mi è chiaro è come si possono usare i vari script (di configurazione e del make) per fare in modo che il codice possa essere compilato correttamente tramite Qt5 evitando la build separata su ciascun sistema operativo.Vi ringrazio per ogni eventuale indicazione
Saluti
Enzo Stefanazzi@Vincenzo_IT said in Compilare la libreria FFTW3 all'interno di QT5:
Quello che non mi è chiaro è come si possono usare i vari script (di configurazione e del make)
La risposta generale e' che non puoi. Alcuni progetti supportano questa struttura ma non c'e' garanzia che lo facciano.
Per fortuna, una buona parte delle librerie piu' comuni e' disponibile nei vari package manager.
Per esempio puoi usare:brew install fftw
su Macsudo apt-get install -y fftw3
su Ubuntuyum install fftw-devel
su Fedoravcpkg install fftwpp
su Windows
Puoi spiegare meglio il tuo scopo finale?
-
@Vincenzo_IT said in Compilare la libreria FFTW3 all'interno di QT5:
Quello che non mi è chiaro è come si possono usare i vari script (di configurazione e del make)
La risposta generale e' che non puoi. Alcuni progetti supportano questa struttura ma non c'e' garanzia che lo facciano.
Per fortuna, una buona parte delle librerie piu' comuni e' disponibile nei vari package manager.
Per esempio puoi usare:brew install fftw
su Macsudo apt-get install -y fftw3
su Ubuntuyum install fftw-devel
su Fedoravcpkg install fftwpp
su Windows
Puoi spiegare meglio il tuo scopo finale?
Puoi spiegare meglio il tuo scopo finale?
Ciao e grazie per la veloce risposta.
Lo scopo voleva essere quello di semplificare lo sviluppo multi-piattaforma avendo l'intero codice sorgente all'interno di Qt5. Ma credo che si possa ovviare con un deploy ad-hoc per ciascun sistema operativo, aggiungendo le librerie compilate separatamente al pacchetto di distribuzione (anche se devo imparare a farlo).Visto che siamo qui, potresti confermare che la documentazione di riferimento per il file di progetto (con estensione .pro) è fondamentalmente quella di qmake? La documentiazione di QT è vastissima e vorrei guadagnare un po' di tempo.
Grazie ancora e saluti
Enzo -
Puoi spiegare meglio il tuo scopo finale?
Ciao e grazie per la veloce risposta.
Lo scopo voleva essere quello di semplificare lo sviluppo multi-piattaforma avendo l'intero codice sorgente all'interno di Qt5. Ma credo che si possa ovviare con un deploy ad-hoc per ciascun sistema operativo, aggiungendo le librerie compilate separatamente al pacchetto di distribuzione (anche se devo imparare a farlo).Visto che siamo qui, potresti confermare che la documentazione di riferimento per il file di progetto (con estensione .pro) è fondamentalmente quella di qmake? La documentiazione di QT è vastissima e vorrei guadagnare un po' di tempo.
Grazie ancora e saluti
Enzo@Vincenzo_IT said in Compilare la libreria FFTW3 all'interno di QT5:
potresti confermare che la documentazione di riferimento per il file di progetto (con estensione .pro) è fondamentalmente quella di qmake?
Confermo ma qmake e' la parte con la peggior documentazione di tutto Qt, ci sono una marea di funzionalita' non documentate.
Il mio consiglio, se devi incominciare un progetto da 0 e' usare CMake invece di qmake -
Ciao, l'uso di librerie esterne è una cosa che si fa spesso.
Io consiglio di usare lo strumento canonico della libreria stessa per la compilazione su tutte le piattaforme.
Fatto questo la libreria resta così com'è e semplicemente la userai nel tuo progetto Qt in modo compilato.
Qualora tu debba fornire la libreria in formato compilato a più sviluppatori, senza che questi siano costretti a complilarsi la libreria, è possibile usare conan, programma che non conosco ma di cui mi hanno parlato bene.
Il programma permette appunto di distribuire una eventuale libreria in formato compilato e si più piattaforme ai progettisti che ne devono fare uso, senza essere costretti a distribuire il sorgente stesso. -
Perfetto tutto chiaro.
Stranamente non c'è un pulsante per ringraziare senza dover aprire un post.Grazie ancora
Enzo