包括3.2.6到4.5.1更新后的文件问题
Xcode #Include file problems after update from 3.2.6 to 4.5.1
自从从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中明确指定头文件的完整路径,但这破坏了项目构建的其余部分的包含。
我在构建选项中的包含路径是项目相关的,我认为这可能与这个问题有关。这个问题是否与派生数据或中间数据的包含路径有关?
静态链接库的构建项目,包含在有错误的"main"项目中,确实将头文件定义为"public"。但是,主项目的干净构建/重建(目前)似乎不会重新构建静态链接的库。
奇怪的是,如果我注释出#include,那么我就会得到数百个实际错误,因为代码的其余部分缺少符号。因此,当前缀头用于编译项目文件时,显然可以找到该文件。
#include错误是致命的,因此编译器不会继续显示由于缺少#include而导致的所有错误。
#include <foo>
There's no way this is legal C++...
结果:
main.cpp:1:10: fatal error: 'foo' file not found
#include <foo>
^
1 error generated.
没有其他错误的事实并不意味着第二行被解释为有效的c++代码
相关文章:
- 已修改的LinkedList未在文本文件本身中更新
- 如何更新和删除文本文件中的特定逗号分隔值?C++
- C++中的文件处理:更新行
- 更新到 2020 年 5 月版本后,无法在 Visual Studio 2019 中创建.exe文件
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- Chilkat SFTP 文件修改时间不与上传更新
- 如何在文件中更新
- 你能把文件嵌入到exe中,每次使用都更新吗
- 更新文件请求将导致404
- 根据播放器位置更新文件中的描述
- 从文件中读取值、更改值和更新文件
- 更新文件(c++)中的记录
- 如何在 Xcode 6 中更新文件路径
- 如何在 c++ 中更新文件中的记录
- 如何更新文件中的特定行
- 按排序顺序更新文件
- 如何更新文件的版本
- 使用库更新文件<fstream>(仅覆盖特定部分)
- 在不锁定文件的情况下同步更新文件
- 生成文件和更新文件