自从将 C++ 项目从 Xcode 3.2.6 升级到 Xcode 4.5.1 以来,我遇到了最奇怪的 #include 文件问题:无法找到我的一个静态链接库的 #include 头文件。对于整个项目,我没有其他未定义的符号错误。
#include 位于前缀标头“MacClient_Prefix.pch”中(我不是预编译标头):
#include "Framework/Base/BaseEnvironment.h"
此头文件 (BaseEnvironment.h) 位于与静态链接库相关的完全不同的文件夹层次结构中。
错误:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/WordMenuBaseEnv.h
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/WordMenuBaseEnv.h:26:10: 'Framework/Base/BaseEnvironment.h' file not found
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/<built-in>:148:2: In file included from <built-in>:148:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/<command line>:4:10: In file included from <command line>:4:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/MacClient_Prefix.pch:9:10: In file included from
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/MacClient_Prefix.pch:9:
我相当确定为项目正确设置了用户头文件路径。
奇怪的是,如果我注释掉#include,那么我会从其余代码中得到数百个缺少符号的实际错误。很明显,当前缀头用于编译项目文件时,文件被找到。
我什至尝试在#include 中明确指定头文件的完整路径,但这破坏了项目构建其余部分的包含。
我在构建选项中的包含路径是项目相关的,我认为这可能与这个问题有关。该问题是否与派生数据或中间体的包含路径有关?
静态链接库的构建项目(包含在有错误的“主”项目中)确实将头文件定义为“公共”。但是,主项目的干净构建/重建(目前)似乎不会重新构建静态链接库。