我正在尝试在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 ++,但是我找不到如何实现的明确参考。