【问题标题】:Using OpenCV in Xamarin.iOS (arm64)在 Xamarin.iOS (arm64) 中使用 OpenCV
【发布时间】:2016-08-08 01:57:53
【问题描述】:
我一直在努力让 OpenCV 在带有 arm64 的 Xamarin.iOS 上运行。我可以在 opencv.org 上找到的最新版本似乎不是为 arm64 构建的。我自己在构建最新的库时遇到了麻烦,但是构建了 OpenCV 2.4.12 (https://github.com/Itseez/opencv/tree/2.4.12)。但是,当我将库添加到我的解决方案时(通过绑定库),我收到以下错误:
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_free_large. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_free_small. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_get_large. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_get_small. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_mem_available. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_mem_init. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_mem_term. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _jpeg_open_backing_store. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5202: Native linking failed. Please review the build log.
我在https://github.com/twelve17/openalpr-ios/issues/5 上看到我需要链接到 libjpeg。我通过使用以下 mtouch 命令执行此操作:
-gcc_flags "-L${ProjectDir} -ljpeg -force_load ${ProjectDir}/libjpeg.a"
但是,现在我收到重复可用的错误:
MTOUCH:重复符号 _jpeg_std_error 在:
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_CreateCompress'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_destroy_compress'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_abort_compress'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_suppress_tables'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_finish_compress'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_marker'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_m_header'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_m_byte'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_tables'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapimin.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_start_compress'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_scanlines'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_write_raw_data'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcapistd.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_c_coef_controller'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jccoefct.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jccoefct.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_color_converter'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jccolor.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jccolor.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_forward_dct'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcdctmgr.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcdctmgr.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_make_c_derived_tbl'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jchuff.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jchuff.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_gen_optimal_table'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jchuff.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jchuff.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_huff_encoder'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jchuff.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jchuff.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_compress_master'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcinit.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcinit.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_c_main_controller'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcmainct.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcmainct.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_marker_writer'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcmarker.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcmarker.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jinit_c_master_control'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcmaster.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcmaster.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:“_jpeg_abort”。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_destroy'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_alloc_quant_table'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_alloc_huff_table'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcomapi.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_add_quant_table'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_set_linear_quality'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_quality_scaling'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_set_quality'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_set_defaults'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_default_colorspace'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_set_colorspace'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5212:本机链接失败,重复符号:'_jpeg_simple_progression'。
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/obj/iPhone/Debug/mtouch-cache/opencv2.a(jcparam.o) (与先前错误相关的位置)
MTOUCH: 错误 MT5213: Duplicate symbol in: /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a(jcparam.o) (与先前错误相关的位置)
MTOUCH:错误 MT5201:本机链接失败。请查看构建日志和提供给 gcc 的用户标志:-L/Users/Alexander/Projects/VRMouse/iOS -ljpeg -force_load /Users/Alexander/Projects/VRMouse/iOS/libjpeg.a
MTOUCH:错误 MT5202:本机链接失败。请查看构建日志。
3 Warning(s)
105 Error(s)
我不知道如何解决这个问题以及我哪里出错了。谁能帮帮我?
【问题讨论】:
-
我不确定,但如果我记得你不需要-ljpeg 标志和${ProjectDir}/libjpeg.a。 (但我不确定,自从我为 ios 编译 opencv 已经有一段时间了。)
-
感谢您的评论。它让我觉得我在构建时做错了什么,并让我找到了解决方法。
-
很高兴看到您成功了,并且很好地回答了您自己的问题,以便未来的用户可以受益! :)
标签:
c++
ios
opencv
xamarin.ios
opencv3.0