web-dev-qa-db-ja.com

コマンドラインからQtプロジェクトをコンパイルする

Qt、C++ライブラリ/フレームワークを使用してアプリケーションを開発しています。 QT-Creatorを使用すると、プロジェクトを正常にコンパイルでき、ビルドディレクトリは目的の実行可能ファイルを正常に生成します。ただし、質問を自動化し、Apache ANTを使用しようとしています。しかし、私は次の問題に直面しています。

コマンドラインからの出力は次のとおりです。

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

実行可能ファイルをコンパイルしていない理由がわかりません。

ターゲットは次のようになります。

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

私が間違っている場所は何ですか?

31
roosevelt

ヒントをありがとう。私は自分が間違っていたことに気付きました。 QT-Creatorは、実際には最初の2つのステップを静かに実行します。

  1. ビルド出力ディレクトリを作成します
  2. ビルド出力ディレクトリへのCD(キーステップ)
  3. .proファイルを参照してqmakeを呼び出す
  4. 電話をかける

だから、私が見落とした重要なことは、最初にビルドディレクトリにいなければならず、次にqmake、makeなどを呼び出さなければならないということでした。ビルドディレクトリをクリーンアップして、すべてを新鮮にコンパイルする必要があります。

36
roosevelt

ターミナルウィンドウで

  1. cd〜/ your_project_folder /
  2. qmake -project
  3. qmake
  4. make
17
Denis Shiryaev

既存のプロジェクトをコンパイルする場合、qmake -projectは実際には間違っています。「qmake --help」を参照してください。

qmake -makefile
make

大規模なプロジェクトの場合、「make -j4」など。

7
kay