Я только что создал проект библиотеки "C++ Standard Dynamic" с использованием Xcode и скомпилировал с использованием LLVM 2.0. Я заметил, что файл PCH содержит строку #include <iostream>
, но файл Test.cp также содержит этот оператор #include <iostream>
.
Странно то, что при удалении оператора в Test.cp сборка завершается с ошибкой Semantic Issue – Use of undeclared identifier 'std'
, несмотря на то, что этот оператор также включен в PCH.
Почему не работает ПЧ? Есть ли настройка, которую мне не хватает? Я никогда ничего не делал с ними раньше (поскольку они всегда просто работают), поэтому я не уверен, что заставляет его не работать, даже с совершенно новым проектом.
#ifdef __OBJC__ #import <Cocoa/Cocoa.h> #endif
. Если я удалю отдельный#import <Cocoa/Cocoa.h>
из каждого файла заголовка, он все равно будет работать, несмотря на то, что файл .pch является единственным местом, куда включен Cocoa. Возможно ли, что такое поведение (PCH функционирует как своего рода глобальный заголовок) уникально для проектов Cocoa? 17.10.2010