В Xcode предположим, что есть фреймворк с именем Foo
. Внутри папки Foo.framework/Headers
находятся файлы File1.h
и File2.h
. Заголовочный файл File1.h
включает File2.h
с помощью следующей директивы:
#include <File2.h>
Фреймворк Foo
представляет собой перепаковку библиотеки C ++, не предназначенной специально для Mac.
Теперь предположим, что у меня есть проект, который ссылается на фреймворк Foo
. Он содержит файл MyFile.mm
, который включает File1.h
с помощью следующей директивы:
#import <Foo/File1.h>
Теперь, когда я пытался скомпилировать MyFile.mm
, он всегда терпел неудачу, потому что не мог найти File2.h
. Как я могу получить это для компиляции и запуска без изменения заголовочных файлов Foo
framework?
Для любопытных, речь идет о пакетной версии Taglib , взятой из исходного дерева Max . Файл, который я пытался включить, был <taglib/mp4.tag>
, и компиляция включающего его файла .mm
всегда приводит к сбою, так как mp4tag.h
включает <tag.h>
без префикса <taglib/...>
в директиве include. Ошибка не только в этих заголовочных файлах, но есть и похожие проблемы в большом количестве заголовочных файлов, поэтому изменение всех этих операторов включения не является тривиальным. Все необходимые «отсутствующие» заголовочные файлы фактически присутствуют в подкаталоге Header
платформы.
Я пытаюсь использовать Taglib в своем приложении, и, хотя я смог скомпилировать Taglib в качестве фреймворка с заголовочными файлами и добавить его в свое приложение, я не могу заставить приложение скомпилироваться из-за вышеуказанных проблем. .
У кого-нибудь есть указатели?
Спасибо.