2017-03-11 46 views
1

qmake的默认行为是添加项目的根路径以包含路径。在Makefile中,它会生成如下内容:如何从包含路径中删除项目的根目录qmake

INCPATH  = -I..\bug -I. -I..\..\Qt\Qt5.8.0\5.8\mingw53_32\mkspecs\win32-g++ 

其中“bug”是项目的名称。我不想要“ - 我”。部分。我如何在.pro文件中删除这个?

我想:

INCLUDEPATH -= "." 

但它改变不了什么。

详细解释:我的项目在Linux上编译得很好,但在Windows(mingw)上编译失败。经过深入研究,我意识到在标准C++库(string.h)中包含了名为“process.h”的文件。问题是在我的项目中有一个名字完全相同的文件。反过来,我项目中的文件被包含到标准库的头文件(!!)中。该行为导致字符串头文件无法编译。

+0

一个明显的解决方法就是重命名'process.h'文件在您的项目。 –

+1

@KubaOber它不是任何解决方案。这是一种解决方法。 – jaskmar

+0

这是有争议的。您也会在其他构建系统上反复出现该问题。一般来说,在您的项目中有任何与任何常用标准标题相同的文件都是非常糟糕的主意。通过专注于qmake你可以在路上踢球:) –

回答

1

有appriopriate配置选项:

CONFIG += no_include_pwd 
+0

嗨,感谢您研究并提交“无记录”的QTBUG。它确实有效,但我很困惑我的项目正在发生什么。当这个项目被称为“bug”时,我原本是这个INCPATH:-I ../ bug -I ../ bug/src -I ../ bug -I。在添加CONFIG行后,我得到这个:-I ../ bug/src -I ../ bug任何想法为什么我最初有多个“-I ../ bug”路径?为什么在添加CONFIG选项后它仍然在那里(一次)?我可能是错的,但是“-I ../ bug”和“-I”是一样的,不是吗? – FrozenTarzan

+0

@FrozenTarzan我没有看到你的* .pro文件 - 所有的答案应该在里面。考虑提出新的问题:) – jaskmar

+0

当然,但我想知道你是否还有“后退一个目录并转发到项目目录”包含修改后的路径。我只是想知道似乎来自某些命令的“-I ../ project_dir”路径。如果你告诉我你在改变之后没有其他人,并且摆脱了“我”。和“-I ../ bug”,然后我打开一个新的问题:-) – FrozenTarzan

相关问题