【问题标题】:QMake generating weird paths in makefileQMake在makefile中生成奇怪的路径
【发布时间】:2013-10-18 19:28:44
【问题描述】:

我正在使用 Qt 5.1.1 并在 Windows 上运行 qmake。

我使用以下命令运行 qmake:

qmake.exe -spec win32-msvc2012 -tp vc project.pro

不知何故,它在我的 makefile 中生成了一些奇怪的相对路径:

INCPATH = -I"..\..\..\qt\qwt-6.1.0\src"

例如。

我在 .pro 文件中的包含路径如下:

INCLUDEPATH += \
$$PWD \
$$QWTDIR \

我做错了什么? (编译器会搜索......\它肯定是不允许访问的)

qwtdir 定义为:

QWTDIR = C:/qt/qwt-6.1.0/src

【问题讨论】:

  • 好的,具体的问题是什么?你说你做错了什么。错误信息是什么?有问题吗?
  • 使用 MSVC2012 编译时收到错误消息:错误 C1083:无法打开源文件:'..\..\..':权限被拒绝

标签: qt makefile qmake


【解决方案1】:

我解决了这个错误。有人提交了损坏的 .pri 文件,该文件在包含后不包含正确的换行符,即:

HEADERS += \
$$PWD/file1.h \ $$PWD/file2.h

添加适当的换行符解决了这个问题。

【讨论】:

    【解决方案2】:

    INCLUDEPATH += $$PWD 很可能是不必要的。

    您的 $$QWTDIR 很可能是相对的 - 您需要放松并向我们展示它。使用$$absolute_path($${QWTDIR})

    您也可以将包含路径全部放在一行上。 INCLUDEPATH 的最后一行的尾行延续是错误的,你必须删除它:

    INCLUDEPATH += \
    $$PWD \
    $$QWTDIR
    

    【讨论】:

    • qmake 也这样做: -I"..\..\..\qt\Qt5.1.1\5.1.1\msvc2012\include" 我没有在.pro 文件
    • 它需要包含自己的文件,没问题。我相信你的makefile是正确的。请记住,所有路径都相对于生成 Makefile 的构建目录。
    • 我必须运行 qmake 有点“丑陋”。如:C:\FOLDER1\FOLDER2\PROJECT>C:\qt\Qt5.1.1\5.1.1\msvc2012\bin\qmake.exe。你的意思是这就是问题所在?
    • 这很好,除了你在你的源代码中构建,这是不建议的。创建一个空文件夹并执行: C:\PROJECT_BUILD> C:\qt\Qt5.1.1\5.1.1\msvc2012\bin\qmake.exe C:\FOLDER1\FOLDER2\PROJECT\project.pro
    【解决方案3】:

    您正在尝试针对 Qwt 的源代码树进行构建(可能是复制 Qwt 示例的项目文件),而不是正确安装 Qwt 并使用以下命令针对已安装的版本进行构建:

    配置 += qwt

    http://qwt.sourceforge.net/qwtinstall.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多