У меня возникли некоторые проблемы при создании файла podspe c для извлечения библиотеки C ++ из приложения iOS.
На самом деле моей главной проблемой являются заголовки, мой C ++ библиотека зависит от fast json, который включен в репозиторий библиотеки в каталоге ext_in c (файлы выглядят как $ {PROJECT_SOURCE_PATH} / ext_inc / rapidjson / * h).
Если я включу его в исходных файлах, таких как:
s.source_files = utils/*{cpp,h}', 'handler/*{cpp,h}','ext_inc/**/*h'
Когда я пытаюсь скомпилировать библиотеку с:
pod lib lint --verbose report-base.podspe c
Я получаю следующие ошибки:
../utils/json_serializer.h:8:10: fatal error: 'rapidjson/prettywriter.h' file not found
Ошибки вызваны тем, что заголовки включены как:
#include "rapidjson/prettywriter.h"
Компиляция продолжается, если я изменяю это на:
#include "prettywriter.h"
... но это неправильный способ включить внешнюю библиотеку, такую как fast json, и она вообще не переносима (эта же библиотека также является ядром приложения android, поэтому я должен остаться кроссплатформенный насколько это возможно).
Я пытался избежать этой проблемы Лем, используя подфайл private_header_path и добавив xcconfig с ключом:
'HEADER_SEARCH_PATHS' => 'ext_inc'
... но ничего не работает.
Для того, что я понял, кокоаподы строят xcode проект из файла podspe c и использует сопоставление модулей для сопоставления всех исходных и заголовочных файлов, как будто они все находятся в одном каталоге, и в этом контексте тот факт, что мои заголовки включают разрыв пути все ... есть способ "сохранить" в карте модуля заголовок с путем?