找不到Sharpie导入

时间:2018-03-28 14:35:45

标签: xamarin.ios google-cloud-speech objective-sharpie

上下文

我必须使用Google Cloud Speech api在Xamarin.iOS应用中实现“语音到文本”功能。

音频需要在用户说话时进行流式传输,以便我们尽快显示用户所说的内容。

首先,我尝试使用Google.Cloud.Speech.V1 Nuget包,但gRPC库似乎无法使用Xamarin(https://github.com/grpc/grpc/issues/1620https://forums.xamarin.com/discussion/94534/how-to-use-google-cloud-speech-api-within-xamarin-formsXamarin, Grpc, Could not resolve type with token 0100002b)。

所以我试图在这个样本上创建一个绑定:https://github.com/GoogleCloudPlatform/ios-docs-samples/tree/master/speech/Objective-C/Speech-gRPC-Streaming

我创建了一个静态库,只保留 SpeechRecognitionService.h SpeechRecognitionService.m 文件并生成* .a胖库。

问题

我必须使用sharpie生成ApiDefinition.cs。 所以我执行了命令sharpie bind -sdk iphoneos11.2 -output Output -scope . [full-path-to-SpeechRecognitionService.h]。我尝试了一些clang选项,但每次我都遇到这种错误:

Parsing 1 header files...
[full-path-to-project]/SpeechRecognitionService.h:18:9: fatal error: 
      'google/cloud/speech/v1/CloudSpeech.pbrpc.h' file not found
#import "google/cloud/speech/v1/CloudSpeech.pbrpc.h"
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Binding...
1 error generated.
Error while processing [full-path-to-project]/SpeechRecognitionService.h.

Done. Exiting with error code 1.
error: Clang failed to parse input and exited with code 1

似乎我必须传递一些clang参数来说明标题的位置,但它们并不都在一个文件夹中。

如何告诉sharpie在多个文件夹中搜索标题?

1 个答案:

答案 0 :(得分:0)

您可以使用*.h匹配项目文件夹下的所有头文件。

例如

sharpie bind --output=InfColorPicker --namespace=InfColorPicker --sdk=[iphone-os] [full-path-to-project]/InfColorPicker/InfColorPicker/*.h

您可以在official documentation

中进行搜索