web-dev-qa-db-fra.com

Compiler un projet Qt à partir de la ligne de commande

Je développe une application utilisant Qt, la bibliothèque/framework C++. En utilisant QT-Creator, je peux très bien compiler mon projet et le répertoire de génération génère très bien les fichiers exécutables souhaités. Cependant, j'essaie d'automatiser mes demandes et d'utiliser Apache ANT. Mais je rencontre les problèmes suivants.

Voici la sortie de la ligne de commande:

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

Je ne sais pas pourquoi il ne compile pas le fichier exécutable.

Voici à quoi ressemble ma cible:

<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>

Une idée où je me trompe?

31
roosevelt

Merci du conseil les gars. J'ai réalisé ce que je faisais mal. QT-Creator effectue en fait les deux premières étapes en silence.

  1. Créer le répertoire de sortie de génération
  2. CD dans le répertoire de sortie de la construction (ÉTAPE CLÉ)
  3. Appelez qmake en référençant le fichier .pro
  4. Appeler la marque

Donc, la chose clé que j'ai négligée était que vous deviez être dans le répertoire de construction d'abord et ensuite appeler qmake, make etc ... Et aussi si la construction a déjà les fichiers compilés, elle génère cette erreur. Je dois juste m'assurer de nettoyer le répertoire de construction pour compiler tout frais.

36
roosevelt

Dans la fenêtre du terminal

  1. cd ~/votre_ dossier_projet /
  2. qmake -project
  3. qmake
  4. make
17
Denis Shiryaev

Si vous compilez un projet existant, qmake -project est en fait incorrect, voir "qmake --help".

qmake -makefile
make

Si c'est un grand projet, "make -j4" ou similaire.

7
kay