从命令行编译Qt项目

roo*_*elt 32 c++ qt qt-creator

我正在使用Qt(C++库/框架)开发一个应用程序.使用QT-Creator我可以很好地编译我的项目,并且build目录生成所需的可执行文件就好了.但是,我正在尝试自动化我的问题并使用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
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它不编译可执行文件.

以下是我的目标的样子:

<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>
Run Code Online (Sandbox Code Playgroud)

知道我哪里错了吗?

roo*_*elt 36

谢谢提醒伙计.我意识到我做错了什么.QT-Creator实际上是默默地执行前两个步骤.

  1. 创建构建输出目录
  2. CD到构建输出目录(KEY STEP)
  3. 调用qmake引用.pro文件
  4. 打电话给

因此,我忽略的关键是你必须首先进入构建目录,然后调用qmake,make等...而且如果构建已经编译了文件,则抛出该错误.我只需要确保清理构建目录以编译所有新鲜的东西.

  • 通常,您不需要清理构建目录.这就是制造的目的:使用那里的东西,重建陈旧的东西,并给你你想要的东西. (3认同)
  • 这个步骤有效.但是如何在不移动到调试文件夹和"启动myexe"的情况下运行生成的.exe文件?我看到一些地方说要运行'./myproject',但它不适用于Windows. (2认同)

小智 17

在终端窗口

  1. cd~/your_project_folder /
  2. qmake -project
  3. QMAKE
  4. 使


kay*_*kay 7

如果编译现有项目,qmake -project实际上是错误的,请参阅"qmake --help".

qmake -makefile
make
Run Code Online (Sandbox Code Playgroud)

如果是一个大项目,"make -j4"或类似.