iphone — стандартная библиотека C ++, найденная в файлах .mm, но не в .h (Xcode 4.5 LLVM GCC 4.2)

Я пытаюсь использовать std :: vector в приложении iOS6.0, разработанном в Xcode 4.5, скомпилированном с LLVM GCC 4.2, и я переименовал с расширением .mm файлы, в которых я использую C ++. Но по какой-то причине заголовки связаны с этими .mm не компилируются, я получил следующую ошибку:

Вектор: Нет такого файла или каталога

Я пробовал импортировать, включать. Это работает, если я только включаю его в .mm, хотя.

Есть идеи, что я делаю не так?

Спасибо

Webaba

РАЗРЕШЕНО: внимательно проверьте наличие других файлов .m, которые могут содержать этот заголовок. (не только тот, который реализует класс) Я пропустил один.

1

Решение

Убедитесь, что любой файл, включающий заголовки, скомпилирован как файл Objective-C ++ или C ++. Вы можете сделать это, выбрав исходный файл, и в инспекторе файлов на панели «Служебные программы» вы можете указать, как Xcode должен компилировать ваш файл.

То же самое произошло бы, если бы вы пытались скомпилировать исходный файл C, который включал, например, заголовки Objective-C.

Редактировать: если команда, используемая для компиляции, содержит что-то вроде -nostdinc или же -nostdinc ++, тогда вам, возможно, придется изменить настройки вашего проекта. Там должна быть настройка в разделе LLVM GCC 4.2 — Язык, который помечен Использовать стандартный каталог системных заголовков (для меня это последний параметр этого раздела). Убедитесь, что он установлен на да.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]