Custom Framework с использованием статического lib — Включение немодульного заголовка в модуль фреймворка Xcode 9

Я видел множество ответов о проблеме, но ни один из них не основан на моем случае, и «ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES» также не работает.

Я разрабатываю фреймворк, который является реализацией библиотеки C. Библиотека OpenHome и после компиляции и создания толстых библиотек у меня есть папка со всеми .a и заголовками.

Поскольку у него есть папка для «Отладка» и «Выпуск», я копирую эти 2 папки в корень моего проекта, импортирую файлы .a в свой «Связать двоичный файл с библиотеками» и в «Настройках сборки» моего цель, я установил «Путь поиска заголовка» с расположением папки заголовков.

для импорта всех заголовков, которые мне нужно реализовать, я использую класс c ++ под названием «MyHeaders.hpp & MyHeader.cpp «, я делаю .hpp общедоступным и импортирую его таким образом в свой MyFramework.h (файл Umbrella):

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdocumentation"#import "MyHeaders.hpp"#pragma clang diagnostic pop

MyHeaders.hpp:

#ifndef MyHeaders_hpp
#define MyHeaders_hpp

#include <stdio.h>/*** CP -PROXIES- ***/
/** Header That Includes all the CP Related Headers **/
#include "OpenHome/Net/C/CpStack.h"
/** CP Services **/
/*UPnP*/
#include "OpenHome/Net/C/CpUpnpOrgConnectionManager1.h"#include "OpenHome/Net/C/CpUpnpOrgRenderingControl1.h"#include "OpenHome/Net/C/CpUpnpOrgAVTransport1.h"
#endif /* MyHeaders_hpp */

Ошибка происходит от каждого включения. Я заменил остроумие импорта, но это также не работает.

Стоит отметить, что эта конфигурация проекта была той, которую я использовал в проекте (Single View Application), который я начал внедрять и тестировать. Единственным отличием было наличие соединительного заголовка.

Есть идеи?

0

Решение

Ну а после исследования я нашел проблему и решение

Когда я #include "OpenHome/Net/C/CpUpnpOrgConnectionManager1.h" этот заголовок либо не является общедоступным, либо содержит непубличные заголовки.

Решение для импорта этих заголовков в основе на основе Swift заключается в создании модуля.

Я создал папку «MyModuleFolder» в моей целевой папке, и я создал файл «module.modulemap» внутри, который выглядит как

module OHNet[system]{

header "MyHeaders.hpp"
export *

}

После этого в «Настройках сборки» -> «Компилятор Swift — Пути поиска» -> «Пути импорта» я добавил местоположение для «MyModuleFolder».

В заключение,

import OHNet

в каждом быстром файле

Я надеюсь, что это помогает.

0

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

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

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