Проблема Xcode PCH - элементы в PCH не включены в исходные файлы - PullRequest
2 голосов
/ 17 октября 2010

Я только что создал проект библиотеки «C ++ Standard Dynamic» с использованием XCode и скомпилировал с помощью LLVM 2.0.Я заметил, что файл PCH содержит строку #include <iostream>, но файл Test.cp также содержит этот оператор #include <iostream>.

Странная вещь заключается в том, что удаление оператора в Test.cp , сборка завершается с ошибкой Semantic Issue – Use of undeclared identifier 'std', несмотря на то, что этот оператор также включен в PCH.

Почему не работает PCH?Есть настройки, которые мне не хватает?Я никогда ничего с ними не делал раньше (так как они всегда просто работают), поэтому я не уверен, что заставляет его не работать, даже с совершенно новым проектом.

Ответы [ 2 ]

1 голос
/ 24 апреля 2013

Удалите производные данные (Window-Organizer, вкладка Projects, выберите ваш проект), чтобы XCode перестроил индекс для PCH.Кроме того, если вы используете модульные тесты, для цели UnitTests существует отдельный PCH.Убедитесь, что это также включает в себя необходимый импорт.

0 голосов
/ 17 октября 2010

Предварительно скомпилированные заголовки используются для ускорения компиляции.Они не имеют никакого другого эффекта, в частности, вы все равно должны включать заголовки там, где они вам нужны.

Edit - В Xcode pch-файл действительно является заголовком префикса, который происходит сбыть скомпилированным (с конфигурацией проекта по умолчанию).Проверьте настройки сборки GCC_PRECOMPILE_PREFIX_HEADER и GCC_PREFIX_HEADER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...