【问题标题】:Compile a Qt project from command Line从命令行编译一个 Qt 项目
【发布时间】:2013-10-12 22:36:04
【问题描述】:

我正在使用 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>

知道我哪里出错了吗?

【问题讨论】:

  • 添加您的 myproject.pro。
  • 如果ANT不是你唯一的选择,你可以试试CMake
  • 另外,如果在 Qt Creator 中它可以工作,使用 qmake + make 应该可以开箱即用。

标签: c++ qt qt-creator


【解决方案1】:

感谢您的提示。我意识到我做错了什么。 QT-Creator 实际上是默默地执行了前两个步骤。

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

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

【讨论】:

  • 您通常不需要清理构建目录。这就是 make 的目的:使用现有的东西,重建陈旧的东西,并给你想要的东西。
  • 此步骤有效。但是如何在不移动到调试文件夹和“启动 myexe”的情况下运行生成的 .exe 文件?我看到一些地方说要运行“./myproject”,但它在 Windows 上不起作用。
  • 什么是make.exe,在哪里可以找到它?我在 qt5.7.0\tools\mingw530_32\bin\ 下只有 mingw32-make.exe。如果我调用 mingw32-make.exe 而不是 make.exe 一切正常。
【解决方案2】:

在终端窗口中

  • cd ~/your_project_folder/
  • qmake -project
  • qmake
  • 制作

【讨论】:

  • 如果在非 gui 系统上编译,您需要先安装 qt-devel 和 qt-create。还有一些发行版将qmake 更改为qmake-qt4
【解决方案3】:

如果编译已经存在的项目,qmake -project 实际上是错误的,参见“qmake --help”。

qmake -makefile
make

如果是大型项目,“make -j4”或类似的。

【讨论】:

    【解决方案4】:

    我用这个方法:

    1. 在您的项目文件夹中打开终端。
    2. 键入:qmake -project .,这将创建一个与您运行命令的文件夹同名的 .pro 文件。
    3. 如果你有一些 gui 的东西,请添加这些行:

    QT += 核心 gui

    greaterThan(QT_MAJOR_VERSION, 4): QT += 小部件

    1. 最后构建您的项目:输入此命令

    qmake "你的项目文件夹或名称".pro ; qmake 制作

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多