Ошибка файла iostream при компиляции заголовка предварительной компиляции в Xcode

Я получаю ошибку 'iostream' file not found при компиляции файла заголовка предварительной компиляции Prefix.pch в Xcode 9. Кажется, компилятор не может его найти, но он прекрасно находит файлы <stdio.h> и <Foundation/Foundation.h>.

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

[EDIT] Проект представляет собой смесь файлов C++ и Objective-C, и я пытаюсь вставить в файл .pch некоторые файлы заголовков, которые являются C++. Я не могу понять, как смешать их в файле .pch.


person andrewz    schedule 07.12.2017    source источник
comment
Вы создаете исходный файл C++? Или исходный файл C? Не могли бы вы скопировать полный и полный вывод (в виде текста) и вставить его в вопрос? Он должен включать имя файла, которое должно дать нам (и вам!) некоторый намек на это.   -  person Some programmer dude    schedule 07.12.2017
comment
Это заголовочный файл предварительной компиляции, файл .pch.   -  person andrewz    schedule 07.12.2017
comment
Вам все еще нужно скопировать и вставить полный вывод.   -  person Some programmer dude    schedule 07.12.2017
comment
На самом деле, эта штука #import может дать подсказку: это часть Objective-C (или Objective-C++). Я предполагаю, что вы создаете проект на Objective-C, а не на Objective-C++.   -  person Some programmer dude    schedule 07.12.2017
comment
У меня нет текстового вывода компиляции. Я компилирую в Xcode. У меня вывод отображается в навигаторе задач. Ошибка: 'iosstream' file not found в Prefix.pch   -  person andrewz    schedule 07.12.2017
comment
Возможный дубликат iostream.h, fstream.h не найден   -  person rptwsthi    schedule 16.11.2018


Ответы (1)


Вы должны изменить pch с помощью #ifdef директив препроцессора:

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

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

(Я просто столкнулся с этой проблемой и решил ее таким образом.)

person zwcloud    schedule 24.07.2019