2015-10-07 179 views
0

我在同一解决方案中包含来自另一个项目的文件 - 它在当前配置中都运行良好,但我添加了一个新方法,现在找不到任何包含文件。忽略项目“其他包含目录”被忽略

这里的头文件dems_gridmanagement.h:

#ifndef dems_gridmanager_h 
#define dems_gridmanager_h 1 

//## begin module%500EBD96007C.includes preserve=yes 
#pragma once 
#include <QObject> 
#include <QTime> 
#include <QString> 
#include "common_StringUtility.h" 
#include "common_SharedMemory.h" 
#include "common_QtThread.h" 
#include "common_QtThreadable.h" 
#include "sma_Maps.h" 
#include "dems_Types.h" 
... 
#include "MQTTs_UDP_Multicast.h" 
... 

而且在附加包含目录:

\ GeneratedFiles; $(QTDIR)\包括:\ GeneratedFiles \ $(配置)。 $(QTDIR)\包括\ qtmain; $(QTDIR)\包括\ QtCore; $(QTDIR)\包括\ QtSql; \; .. \常见; .. \ DemsCommon; .. \以太网; .. \ SMA; .. \ ModbusTCPIP; .. \ MQTTs;%(AdditionalIncludeDirectories)

重要的是,它包括“.. \ SMA”,它应该允许找到“sma_Maps.h”,但我是gett荷兰国际集团:

Error 3 error C1083: Cannot open include file: 'sma_Maps.h': No such file or directory c:\users...\solution\projects\DemsGridManagement\dems_GridManager.h 33

我试图将其更改为: 的#include “../SMA/sma_Maps.h”

其得到的错误的出手,但随后引入了一个新的错误:

Error 59 error C1083: Cannot open include file: 'MQTTs_UDP_Multicast.h': No such file or directory c:\users...\solution\projects\DemsGridManagement\dems_GridManager.h 39

,也是一个类似的错误对于包括在项目文件是在解决方案中的一个完全不同的项目,我还没有打开或改变任何东西英寸

出于某种原因,这就像解决方案只是有选择地忽略包含一些项目文件的包含目录信息,但不包括其他人(QT包括工作正常,所以“常见”项目包​​括...所以“共同”项目包括...

有没有人任何想法可能导致这种情况?昨天一切正常!

编辑:缩小范围。我说从另一个项目GridManager参考:

#include "../DemsGridManagement/dems_gridmanager.h" 

如果我删除此,有一个在dems_gridmanager.h文件没有问题。如果它在这里,那么在gridManager中的包含会变得疯狂并且破裂。

回答

0

当与#include "filename"一起包含时,它始终搜索与当前文件相同的目录。要获得你包含在“附加包含目录”中的文件,你应该包含在#include <filename>

+0

但是它是如何工作的,没有一个包含“#include”../DemsGridManagement/dems_gridmanager.h“的完全不同的文件,项目?另外,似乎没有与 Joe

+0

一起工作如果你没有在任何地方包括'dems_gridmanager.h',预处理器将不会处理'dems_gridmanager.h'。因此,可能在'dems_gridmanager.h'中的所有错误编译时不会显示 – Taus

+0

虽然它正在被使用,但我只是试图在其他地方引用它。此外,似乎没有与 Joe