【问题标题】:Qt project, no rule to make target needed byQt项目,没有规则使目标需要
【发布时间】:2013-06-14 14:59:02
【问题描述】:

我的 Makefile 有问题。我下载了开源 Qt 项目。因此,当我尝试编译它时,我收到一条消息:

error: No rule to make target needed by stop.

在我的.pro 文件中,我有*.cpp 文件的相对路径。因此,当我将相对路径替换为绝对路径时,它可以工作,另一种情况是它让我遇到了上面的错误。 系统是Linux。


我应该如何处理相对路径?

【问题讨论】:

  • 我在这里 rm .qmake.stash 并且问题消失了。

标签: qt makefile


【解决方案1】:

我会使用 QtCreator,打开项目,然后添加一个放错位置的源(假设是您在 .pro 中看到的第一个)。

IDE 应根据您的文件夹选择将其放置在 正确 相对路径中。之后剪切'n'粘贴路径前缀到所有剩余的地方。

无论如何,路径前缀应该与您找到 .pro 的目录相关。我正在使用的一个开源项目的示例(QZXIng,ZXing 的 Qt 端口):

SOURCES += CameraImageWrapper.cpp \
    QZXing.cpp \
    imagehandler.cpp \
    zxing/ResultPointCallback.cpp \
    zxing/ResultPoint.cpp \
    zxing/Result.cpp \
    ...

因此您可以尝试将 .pro 文件移动到适当的位置,而不是更改相对路径...

HTH

【讨论】:

  • 我找到了答案,我不得不在 Qt Creator 的 Build Settings 中关闭选项“Shadow”。无论如何,谢谢!
  • @Robert 请告诉我在哪里可以找到该选项。我面临同样的问题,在Tools/Options 中找不到此选项
  • @GuidoG,您会在 Projects 选项卡(左侧面板,寻找扳手)中找到 Shadow Build 复选框,然后在构建设置的 General 类别中找到。跨度>
【解决方案2】:

我有同样的错误。我的专业档案是

HEADERS       = \
                charectertranformer.h \
                filereader.h \
                svgview.h \
                threadfilereader.h \
                serverworker.h \
                renderserver.h
SOURCES       = \
                charectertranformer.cpp \
                filereader.cpp \
                main.cpp \
                svgview.cpp \
                threadfilereader.cpp \
                serverworker.cpp \
                renderserver.cpp \
QT += concurrent
QT += opengl
QT += network
QT += svg
CONFIG -= console
#CONFIG += warn_off exceptions_off
#qmake -svgviewer.pro

在 renderserver.cpp 后删除反斜杠对我有帮助

【讨论】:

    【解决方案3】:

    我遇到了这个问题,这是因为我在 Projects>Build & Run 下选择了错误的工具包

    【讨论】:

      【解决方案4】:

      此问题的一个原因是您删除了不再需要但忘记从 res.qrc 中删除的文件

      【讨论】:

        猜你喜欢
        • 2019-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多