【问题标题】:Setting Makefile path with qmake使用 qmake 设置 Makefile 路径
【发布时间】:2013-07-29 11:44:43
【问题描述】:

这是我在 .pro 中添加的用于设置自定义构建目录的行。

BASEPATH = ../some/path/
CONFIG(debug, debug|release) {
    BUILDDIR = $${BASEPATH}/debug
} else {
    BUILDDIR = $${BASEPATH}/release
}
OBJECTS_DIR = $${BUILDDIR}/obj
MOC_DIR = $${BUILDDIR}/moc
RCC_DIR = $${BUILDDIR}/rcc
UI_DIR = $${BUILDDIR}/ui
MAKEFILE = $${BUILDDIR}/Makefile

但是,它失败并出现错误:

error : No rule to make target `../project/project.pro', needed by `Makefile'.  Stop.

如果我删除 MAKEFILE=... 行,效果会很好,但我不希望 Makefile 在与源文件相同的目录中输出。

那么我是在寻找一些不可能的事情还是MAKEFILE 是要编辑的错误变量? 谢谢。

【问题讨论】:

    标签: qt makefile qmake


    【解决方案1】:

    你听说过shadow build吗?

    影子构建是指在一个单独的目录中构建一个项目, 构建目录。构建目录与源不同 目录。阴影构建的好处之一是 它可以保持 您的源目录干净,这样可以更快地切换 构建配置。因此,阴影构建是最佳实践 如果您需要一组源代码的许多构建配置 文件。

    如果您使用 Qt Creator 构建项目,请参阅其手册:Editing Build Configurations。但是,如果您是在命令行上构建它,那么请在 SO 上查看此问题和答案:Manually configuring shadow build in qmake

    【讨论】:

    • 是的,通常我影子构建,但我明确地想在 .pro 中指定它,而不是在 .pro.user 中,这样每个人的构建目录都是相同的,不管配置等...
    • 这种情况下恐怕帮不了你了。我已经阅读了 MAKEFILE 变量的文档并以各种方式尝试了您的 .pro 文件,发现您尝试执行的操作似乎不受支持:MAKEFILE 指定了 Makefile 的 name,也就是说,只有名称而不是其路径:MAKEFILE: This variable specifies the name of the Makefile which qmake should use when outputting the dependency information for building a project. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
    • 好吧,我读过它,但我没有像那样理解它。无论如何,我会接受你的回答,因为影子构建是我提出问题的答案。
    【解决方案2】:

    您可以通过将源文件添加到单独的 src 文件夹来将它们分开。这个问题也可以帮助你:-

    How to specify different Debug/Release output directories in QMake .pro file

    【讨论】:

    • 是的,我按照这个问题导致了我帖子中的代码,但是如果我不添加MAKEFILE=...,Makefile 将不会在指定目录中输出,而是在中间源代码。
    • 即使源文件在不同的目录中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多