QMake在makefile中生成奇怪的路径
Posted
技术标签:
【中文标题】QMake在makefile中生成奇怪的路径【英文标题】:QMake generating weird paths in 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:无法打开源文件:'..\..\..':权限被拒绝 【参考方案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
【讨论】:
以上是关于QMake在makefile中生成奇怪的路径的主要内容,如果未能解决你的问题,请参考以下文章
浅谈 qmake 之 shadow build(就是将源码路径和构建路径分开)