从命令行编译一个 Qt 项目

新手上路,请多包涵

我正在使用 C++ 库/框架 Qt 开发应用程序。使用 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>

知道我哪里出错了吗?

原文由 roosevelt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 902
1 个回答

谢谢提醒伙计。我意识到我做错了什么。 QT-Creator 实际上默默地采取了前两个步骤。

  1. 创建构建输出目录
  2. CD 到构建输出目录(关键步骤)
  3. 调用 qmake 引用 .pro 文件
  4. 拨打电话

所以,我忽略的关键是你必须先在构建目录中,然后调用 qmake、make 等……而且如果构建已经编译了文件,它会抛出该错误。我只需要确保清理构建目录以重新编译所有内容。

原文由 roosevelt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题