2013-10-06 19 views
20

Sto sviluppando un'applicazione che utilizza Qt, la libreria/framework C++. Usando il QT-Creator posso compilare il mio progetto bene e la directory build genera i file eseguibili desiderati bene. Tuttavia, sto cercando di automatizzare le mie richieste e usando Apache ANT. Ma sto incontrando i seguenti problemi.Compilare un progetto Qt dal comando Riga

Ecco l'uscita dalla linea di comando:

build.mac.64: 
    [echo] Building for Mac 
    [echo] Updating destination path 
    [exec] Project WARNING: No .qmake.cache is present. This significantly slows down qmake with this makespec. 
    [exec] Project WARNING: Call 'cache()' in the top-level project file to rectify this problem. 
    [exec] make: Nothing to be done for `first'. 
    [exec] cp: ./build/mac.64/settings.ini: No such file or directory 
    [exec] Result: 1 
    [echo] Reverting destination path 

non sono sicuro perché non di compilare il file eseguibile.

Ecco come il mio obiettivo assomiglia:

<target name="build.mac.64"> 
    <echo>Building for Mac</echo> 
    <exec executable="qmake"> 
     <arg value="myproject.pro"/> 
     <arg 
     value="-r"/> 
     <arg value="-spec"/> 
     <arg value="macx-clang"/> 
     <arg value="CONFIG+=x86_64"/> 
    </exec> 

    <exec executable="make" /> 

    <exec executable="cp"> 
     <arg value="./settings.ini"/> 
     <arg value="${default.build.dir.mac.64}/settings.ini"/> 
    </exec> 

</target> 

Hai idea di dove sto andando male?

+1

Aggiungi il tuo myproject.pro. –

+0

Se ANT non è la tua unica scelta, puoi provare [CMake] (http://qt-project.org/quarterly/view/using_cmake_to_build_qt_projects) – yegorich

+0

Inoltre, se in Qt Creator funziona, usare qmake + make dovrebbe funzionare senza la scatola. –

risposta

26

Grazie per i suggerimenti ragazzi. Ho capito cosa stavo facendo male. QT-Creator esegue effettivamente i primi due passaggi in silenzio.

  1. creare la directory di output di generazione
  2. CD nella directory di output build (STEP KEY)
  3. chiamata qmake riferimento al file .pro
  4. chiamata a rendere

Quindi, la cosa fondamentale che ho trascurato era che prima dovevi essere nella directory di build e poi chiamare qmake, make etc ... E anche se la build ha già i file compilati, genera quell'errore. Devo solo assicurarmi di pulire la directory di compilazione per compilare tutto fresco.

+3

Non è necessario pulire la directory di generazione, normalmente. Questo è ciò che rende è: utilizzare ciò che è lì, ricostruire ciò che è stantio e darti quello che vuoi. –

+2

Questa procedura funziona. Ma come posso eseguire il file .exe generato senza passare alla cartella di debug e 'avviare il mio exe'? Ho visto alcuni posti che dicono di eseguire "./myproject" ma non funziona su Windows. –

13

Nella finestra di terminale

  1. cd ~/your_project_folder/
  2. qmake -project
  3. qmake
  4. fare
+0

Se si compila su un sistema non gui, è necessario installare qt-devel e qt-create prima. Anche alcune distro cambiarono 'qmake' in' qmake-qt4' – spuder

3

Se la compilazione di un progetto esistente, qmake -project è in realtà sbagliato , vedi "qmake --help".

qmake -makefile 
make 

Se è un progetto di grandi dimensioni, "make -j4" o simile.

Problemi correlati