Заголовочный файл формы C: "вектор" файл не найден "в swift
Я пытаюсь интегрировать SDK Objective-C в мой файл swift. Но когда я хочу добавить некоторые файлы из SDK в мой Bridging Header, я получаю эту ошибку, "векторный" файл не найден
Я также получаю строковый файл не найден, если я хочу добавить другой файл в заголовок swift.
Я обнаружил, что это заголовочный файл C. Поставщик SDK дал несколько подсказок, таких как создание файла .mm, но как они не знают.
Я попытался добавить все файлы поддержки C или C++, такие как libstdC++.6.tbd,libstdC++.6.0.9.tbd,libstdC++.6.0.9.dylib,libstdC++.6.dylib,libstdC++. Dylib, но ничего не изменилось.
Вот ошибка https://pasteboard.co/InhuW5K.png
А вот и интеграция файла Bridging Header
#ifndef IOT_Demo_Bridging_Header_h
#define IOT_Demo_Bridging_Header_h //#ifndef ObjectiveCHeader_h //#define ObjectiveCHeader_h
#import <LCOpenSDKDynamic/LCOpenSDK_Api.h> //#import "../Depend/LCOpenSDK/LCOpenSDK_Api.h"
#import <LCOpenSDKDynamic/LCOpenSDK_AudioTalk.h>
#import <LCOpenSDKDynamic/LCOpenSDK_PlayWindow.h>
#import <LCOpenSDKDynamic/LCOpenSDK_EventListener.h>
#import <LCOpenSDKDynamic/LCOpenSDK_TalkerListener.h>
#import <LCOpenSDKDynamic/DeviceList.h>
#endif
Я застрял с этой ошибкой в течение нескольких дней. Пожалуйста помоги. Заранее спасибо.
1 ответ
Похоже, вы столкнулись с проблемами, пытаясь использовать код C++ в Swift. См., Например, этот ответ: Взаимодействие с классами C++ из Swift. vector
а также string
являются стандартными заголовками библиотеки C++.
Кроме того, делая поиски, как use c++ in swift
, call c++ from swift
и т. д. в Google и Stackru должны предоставить достаточно примеров того, как с этим справиться.
Вкратце, один из подходов заключается в написании оболочки Objective-C++. Файлы реализации, с .mm
расширение будет представлять собой смесь кода Objective-C и C++, то есть C++ API может быть вызван кодом в этих файлах. Однако функции, которые должны быть видны Swift через заголовок моста, не должны использовать типы C++ в качестве параметров или возвращаемых значений.