C++ #包含具有相同名称的不同文件的include语句
在我的Xcode项目中,我添加了一个新的单元测试目标(使用GoogleC++测试框架)。我创建了一个新目录(例如/unittest/myproject/),在其中复制了源(.h/.cpp)文件,并为测试目的做了一些修改(例如将受保护的方法公开),并将其添加到单元测试目标中C++ #包含具有相同名称的不同文件的include语句,c++,xcode,cocoa,C++,Xcode,Cocoa,在我的Xcode项目中,我添加了一个新的单元测试目标(使用GoogleC++测试框架)。我创建了一个新目录(例如/unittest/myproject/),在其中复制了源(.h/.cpp)文件,并为测试目的做了一些修改(例如将受保护的方法公开),并将其添加到单元测试目标中 但当我包含一个.h files main.cpp时,它指的是原始文件,而不是/unittest/myproject/中的文件。我还将标题搜索路径设置为“$(SRCROOT)/../../../unittest/myprojec
但当我包含一个.h files main.cpp时,它指的是原始文件,而不是/unittest/myproject/中的文件。我还将标题搜索路径设置为“$(SRCROOT)/../../../unittest/myproject”,但main.cpp仍然指向原始文件(命令+单击获取原始文件)。谁能告诉我我遗漏了什么?Xcode版本4.6.3有问题的头肯定存在于另一个目录中,Xcode将其视为包含路径 例如,该目录可以是:
/usr/include
/usr/local/include
还有一件事: 您还应检查,此文件使用哪种类型的包含:
- 使用引号:
#包括“header.h”
- 使用括号:
#包括
#include
语句的文件位于同一目录中的标题
根据规范:
表单的预处理指令
#包括新行
在实现定义的位置序列中搜索标头
由<和>
分隔符,并导致该指令被整个
标题的内容如何指定位置或标题
已识别的是已定义的实现。
表单的预处理指令
#包括“q-char-sequence”新行
使指令的全部内容替换该指令
由“”之间的指定序列标识的源文件
分隔符。在指定的源文件中搜索
实现定义方式。如果不支持此搜索,或
如果搜索失败,将重新处理该指令,就像它读取一样
#包括新行
具有相同的包含序列(包括>个字符,如果有)
从最初的指令
您需要临时从/usr/local/include或其所在的任何默认搜索路径中删除原始文件,因为这些搜索路径包含在您自己的搜索路径之前。可能存在重复的