我已经有这个问题好几天了,一直无法在这方面取得任何进展。我有一个本机 Obj-C 库,我正在尝试使用 MonoTouch 绑定项目进行绑定。绑定 Dll 已创建,但是当我将其导入应用程序并尝试编译时,我得到一个
MT5202 本机链接失败错误。
读取构建输出显示我正在编译的 iOS 版本的符号丢失。
架构 armv7 的未定义符号:
构建输出显示了许多链接问题(仅显示了几个)
“_CVPixelBufferGetPixelFormatType”,引用自: -[DecodePickerController captureOutput:didOutputSampleBuffer:fromConnection:] 在 libQuickMarkSDK.a(DecodePickerController.o) -[QMImageUtil saveToAlbum:] 在 libQuickMarkSDK.a(QMImageUtil.o) “_CVPixelBufferGetPlaneCount”,引用自: +[QMImageUtil imageBufferSave:f:] 在 libQuickMarkSDK.a(QMImageUtil.o) +[QMImageUtil imageBuffer:zoom:w:h:f:] 在 libQuickMarkSDK.a(QMImageUtil.o) “_CVPixelBufferGetWidth”,引用自: -[DecodePickerController captureOutput:didOutputSampleBuffer:fromConnection:] 在 libQuickMarkSDK.a(DecodePickerController.o) -[QMImageUtil saveToAlbum:] 在 libQuickMarkSDK.a(QMImageUtil.o) “_CVPixelBufferGetWidthOfPlane”,引用自: +[QMImageUtil imageBufferSave:f:] 在 libQuickMarkSDK.a(QMImageUtil.o) “_CVPixelBufferLockBaseAddress”,引用自: -[DecodePickerController captureOutput:didOutputSampleBuffer:fromConnection:] 在 libQuickMarkSDK.a(DecodePickerController.o) “_OBJC_CLASS_$_AVCaptureDevice”,引用自: libQuickMarkSDK.a(QuickMarkCameraUtil.o) 中的 objc-class-ref “_OBJC_CLASS_$_AVCaptureDeviceInput”,引用自: libQuickMarkSDK.a(QuickMarkCameraUtil.o) 中的 objc-class-ref
首先,我认为这只是绑定错误。所以我重建了绑定。没有喜悦。因此,为了测试一个理论,我尝试使用 github 上提供的 RedLaser 单声道绑定。这也提供了相同的错误。(如果 -unsafe 从生成文件中删除)。
我需要绑定的库的 linkwith 语句是
程序集:LinkWith ("libQuickMarkSDK.a", LinkTarget.ArmV7, ForceLoad = true, Frameworks = "AVFoundation CFNetwork CoreMedia CoreVideo libz.1.2.5.dylib MobileCoreServices QuartzCore Foundation SystemConfiguration")]
并且正在使用的 Monotouch 添加标志是
-cxx
我已经阅读了很多其他问题,但没有任何帮助解决这个问题,任何帮助都会很棒。