在 Xcode 中编译预编译 header 时找不到 iostream 文件错误

iostream file not found error when compiling a precompile header in Xcode

我在 Xcode 9 中编译我的 Prefix.pch 预编译 header 文件时出现 'iostream' file not found 错误。编译器似乎找不到它,但它找到了<stdio.h><Foundation/Foundation.h> 文件就好了。

#include <stdio.h> // ok
#include <iostream> // error
#import <Foundation/Foundation.h> // ok

[编辑] 该项目混合了 C++ 和 Objective-C 文件,我试图将一些 header C++ 文件放入 .pch 文件中。我无法弄清楚如何在 .pch 文件中混合使用两者。

您应该使用 #ifdef 预处理器指令修改 pch:

#ifdef __cplusplus
#include <cstdio>
#include <iostream>
#endif

#ifdef __OBJC__
#import <Foundation/Foundation.h>
#enid

(我只是运行进入这个问题,并通过这种方式解决了它。)