【问题标题】:How to avoid qmake Build Step if using QT Creator如果使用 QT Creator,如何避免 qmake Build Step
【发布时间】:2019-02-06 09:20:31
【问题描述】:

我有一个 Qt 项目文件 (.pro) 和一个 Makefile (自写)。
项目文件仅用于在 IDE 中编辑源文件:

/home/project/

             ./src/fooApp.pro
                              TEMPLATE=app
                              CONFIG-=qt
                              TARGET=fooApp

                              SOURCES+=...
                              HEADERS+=...

             ./src/main.c
             ./src/foo.c
             ./src/foo.h

             ./build/Makefile

我想通过 IDE QT Creator 3.5.1
构建项目 因此我想在 Makefile 上调用 make。

在构建过程中,我总是收到找不到 Makefile 的错误,因此没有触发构建。

解决方案是始终先调用 qmake,然后再调用(即使 Makefile 仍然存在且自定义设置 make -C ../build in /home/project/

有人可以解释一下,为什么不能忽略 qmake 并直接在已经存在的 Makefile 上调用 make?

(项目没有使用Qt库)

问候

【问题讨论】:

    标签: makefile qt-creator qmake


    【解决方案1】:

    这很简单,我经常只使用 makefile 项目,因为我喜欢 qt-creator 作为 IDE。在 IDE 中转到左侧的项目选项卡。

    选择该页面顶部附近的“构建”选项卡,如下所示:(build | run)

    在构建步骤中:

    • 通过将鼠标悬停在该步骤上并单击出现的 X 来删除 qmake 构建步骤。
    • 编辑 build directory 使其与您的 makefile 目录相同。

      注意:您必须点击它旁边的shadow build 复选框才能启用它。

    • 删除您不想要的任何其他步骤(实际上只是暂时将它们全部删除)。
    • 添加新步骤make 步骤。它会尝试使用默认的 make,但如果需要,您可以覆盖它。还可以添加任何参数,例如 debug-j4 等...

    那么你就完成了:)

    下次你点击 build 时,它会简单地调用 make 命令。

    注意:您需要对您拥有的任何其他配置(如发布、调试等)执行相同的操作。您还可以添加更多配置来执行其他 make 选项(如果有的话),例如 make doxygen 或诸如此类...

    刚刚记得你也可以:

    • 我不知道为什么,但是当我测试它时(就像 OP 所做的那样)你似乎不能只设置一个带有参数-C ../make 步骤,它似乎想查看“构建目录”首先。

    我倾向于使用构建位置,因为它是 IDE 的一个不错的功能。

    注意将较新版本的 Qtcreator 作为 makefile IDE 的一个问题是您无法与其他人共享您的构建设置(即无法配置控制它们),因为它们已锁定到您的 PC 配置文件...说来话长...但它非常可悲,我不再使用 qt creator 出于这个原因。

    【讨论】:

    • 感谢您的回答 - 但我期待得到此帮助。问题是,我已经尝试过你的方法,但它对我不起作用。由于我已经有一个 Makefile,我删除了 qmake 步骤。在 make 参数中添加了 -C 选项。但是 IDE 仍然声称找不到我的 Makefile。是不是因为Makefile和.pro文件不在同一个目录?
    • @xelA 可能是的。如果您使用 .pro 文件和 makefile 的位置更新您的问题,我们可以非常轻松地对其进行排序。你有没有看到名为build location(或类似的东西)的小盒子——这是用于运行make的路径。你还有一个名为Makefilemakefile的文件吗?如果还有其他内容,则需要通过 make -f my_makefile.mk 或类似方式指定名称...注意:您可以添加另一个自定义步骤并运行 pwd 以查看您从哪个文件夹开始(如果它不起作用,稍后重新添加)。
    • 我已经更新了上面的项目结构。 .pro 文件位于 /src/ 中,Makefile 位于 /build 目录中。如前所述,一种解决方法是在 .pro 文件所在的目录中添加一个虚拟 Makefile。但是,即使没有 qmake Build Step 处于活动状态,也需要这个虚拟文件,这让我很困惑。 (make 使用-C ../build 选项调用,即我的Makefile 所在的位置)对我来说,Qt Creator 似乎总是希望在构建过程中.pro 文件旁边有一个Makefile,即使它只是一个虚拟文件。
    • @xelA 你的build location 在你的构建配置中设置了什么? - 如果您正确填写,您将不需要 -C ... 部分 - 这将是您的起始目录。您可能需要将其设置为 ../build 或类似的东西
    • 是的,就是那个——我忘记了你需要点击影子构建(它不是真正的官方使用——但它会做你想做的事)。顺便说一句,我确实尝试了-C ../,你是对的,这似乎不起作用,但构建位置方法确实(只是重新测试了它) - 但正如你所说,你需要单击影子构建选项,然后输入路径你要。注意:如果需要,您可以在此处输入../。测试你在哪里将pwd 放入 make override 命令中(这样当你构建它时运行 pwd 并打印目录。但我只是将我的 makefile 移动了一个级别并尝试了它。
    猜你喜欢
    • 2018-02-14
    • 2011-02-24
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多