如何在Cocoa-touch库中公开C ++代码

时间:2019-04-30 18:40:12

标签: c++ objective-c xcode

我正在尝试在Swift项目中使用自定义C ++代码。

我在工作区中有两个项目:一个带有C ++代码的静态库:

//  display_recognition.h

int getNumeralSegment_CPP(unsigned char *image, const int width, const int height, unsigned char *output, const int displayWidth, const int displayHeight, const int rotateHeight, float *separators);

C ++代码的Obj-C包装器:

#import "iOS_display_recognition.h"
#include "../display_recognition//display_recognition.h"

@implementation iOS_display_recognition

+ (int)getImageNumeralSegment:(unsigned char *)image :(const int)width :(const int)height :(unsigned char *)output :(const int)displayWidth :(const int)displayHeight :(const int)rotateHeight :(float *)separators {
    return getNumeralSegment_CPP(image, width, height, output, displayWidth, displayHeight, rotateHeight, separators);
}

@end

和带有Swift代码的应用程序项目:

let err = iOS_display_recognition.getImageNumeralSegment(time, Int32(cgimg.width), Int32(cgimg.height), numbers, 960, 415, 270, ptrSeparators) 

我已将它们链接到XCode中,在构建设置中添加了标头引用,并包含了桥接标头。

它通过了编译器检查,但是当我尝试构建项目时,出现以下错误:

  

架构arm64的未定义符号:

     

“ _ getNumeralSegment_CPP”,引用自:

     

+ [iOS_display_recognition getImageNumeralSegment ::::::::]在   libiOS_display_recognition.a(iOS_display_recognition.o)

     

ld:体系结构arm64找不到符号

     

clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

对于obj-C魔术有一些C ++,但是我找不到如何实现的明确参考。

0 个答案:

没有答案