Макросы препроцессора Xcode для включения заголовков системного стиля

Я пытаюсь вручную добавить freetype 2.9.0 в качестве цели сборки фреймворка в мой игрушечный проект в Xcode. Freetype использует макросы препроцессора для включения своих заголовков в угловые скобки (<freetype/config/xx.h>), что сбивает с толку систему сборки Xcode, и я получаю сообщение об ошибке expected "FILENAME" or <FILENAME>, указывающее, что он не может найти включения моего системного уровня. Вместо жесткого кодирования заголовков подпапок, как мне настроить систему сборки Xcode для поиска этих файлов конфигурации?

Я пробовал это в другом файле

#define SOME_CONFIG <glfw/glfw3.h> /*this header is included as a system header in a subfolder <project/glfw/... , and works fine*/

#ifdef SOME_CONFIG
#include SOME_CONFIG
#endif

И это работает отлично. Но когда я пытаюсь это сделать с помощью freetype, он не может найти расширение в макросах.

Включаемая структура freetype выглядит следующим образом:

include/ftbuild.h         -- points to include/freetype/config/ftheader.h
include/config/ftheader.h -- has all the #define macros to ->
include/config/...        -- a bunch of headers with options which Xcode refuse to see

person Fred    schedule 25.03.2018    source источник
comment
Вы можете добавить дополнительные включаемые каталоги, передав компилятору флаги -I…. Например, -Ifreetype/config. Не знаю, как сказать xcode сделать это.   -  person nemequ    schedule 25.03.2018


Ответы (1)


По-видимому, это действительно работало все это время, я просто забыл добавить переменную среды FT2_BUILD_LIBRARY как в сборку отладки, так и в сборку выпуска, и я установил ее для отладки, поэтому макросы внутреннего заголовка не были предварительно скомпилированы и, следовательно, не найдены. Прекрасно работает, чтобы делать то, что я пытаюсь сделать в Xcode 9.

Переменные среды

person Fred    schedule 25.03.2018