Установите путь поиска системы в Xcode 4 - PullRequest
4 голосов
/ 12 июня 2011

Я пытаюсь установить путь поиска заголовка в Xcode 4 (используя LLVM 2.0 / clang в качестве компилятора) в проекте командной строки C ++, чтобы я мог включить файл заголовка библиотеки через #include <foo>.

Если я включу путь поиска в настройке сборки «Пути поиска заголовка», то заголовок будет найден.К сожалению, я также компилирую с -Werror и строгим уровнем предупреждения, и рассматриваемый заголовок, таким образом, вызывает ошибку компиляции.

Поэтому я бы включил путь поиска заголовка через -isystem, чтобы отключить предупреждения для этогоЗаголовок библиотеки.Однако я не могу найти соответствующий параметр сборки в Xcode 4. Ни «Пути поиска по заголовкам», ни «Пути поиска по заголовкам пользователей» не работают.

Разве Xcode не поддерживает флаг -isystem?

1 Ответ

3 голосов
/ 19 марта 2012

Как вы указали, -isystem - это способ, которым gcc обрабатывает системные каталоги, и в отличие от -I каталогов, у -isystem будут подавлены предупреждения, а различные другие способы поведения, которые вы получаете из системы, включают пути.

Xcode может не показаться очевидным, но основанный на llvm gcc-подобный компилятор, предоставляемый с Xcode 4.3 , поддерживает эту опцию, как и gcc.Кажется, это распространенный миф о том, что это не так (без сомнения, потому что в прошлом этого не было), и даже CMake (2.8.7) все еще продолжает избегать использования опции -isystem с Xcode.

Для тех, кто делает проекты Xcode вручную, «Пути поиска по заголовкам» (в отличие от «Пути поиска по заголовкам пользователей») в настройках вашего проекта также будут работать, как вы упомянули, и, вероятно, будет проще, если вы этого не сделаете.используйте что-то вроде CMake для создания своего проекта Xcode.

...