我有一个适用于Windows的.NET 4程序。我试图用单声道和Xamarin工作室为Mac电脑移植它。
我有第三部分库EmguCV
(它是OpenCV
库的包装器)。我使用official manual进行安装。它会将OpenCV
和EmguCV
同时安装到
库/ Python的/ 2.7 /站点包/ emgucv / lib中
当我从Xamarin在调试模式下启动程序时 - 一切正常。它创建了所有库并使用它。但是当我把节目作为" pak"并且在未安装EmguCV
的计算机上运行 - 我找不到"找不到DLL"异常。
我使用此命令创建程序:
macpack -m:1 -o:. -r:/Library/Frameworks/Mono.framework/Versions/Current/lib/ -r:/Library/Python/2.7/site-packages/emgucv/lib -r:/Library/Python/2.7/site-packages/emgucv/bin -r:Assimp32.dll -r:Assimp64.dll -r:cvextern.dll -r:Emgu.CV.dll -r:Emgu.Util.dll -r:libegl.dll -r:libglesv2.dll -r:OpenTK.dll -r:OpenTK.GLControl.dll -r:RH.AssimpNet.dll -r:RH.HeadEditor.dll -r:RH.ImageListView.dll -r:RH.HeadShop.exe -r:blending.fs -r:blending.vs -r:blendingPl.vs -r:idle.fs -r:idle.vs -r:skelet.vs -r:sprite.png -r:./Libraries -r:./Models -r:./Plugin -r:./Resources -r:./Stages -r:./"Haar Cascades" -n:HeadShop -a:RH.HeadShop.exe
我的第二和第三个参数应该将EmguCV
个库附加到我的pak:
当我在里面看时,我发现这个库。但是程序仍然没有找到它..
我想在openCV
原生图书馆遇到麻烦,但我无法意识到错误:(
答案 0 :(得分:3)
好吧,我花了很多时间在mac论坛上:)
重点是OSX动态库(* .dylib)有一个“安装名称”,告诉操作系统期望找到库的位置。
因此,要使用它 - 我应该更改“安装名称”。要做到这一点 - 我使用了一个工具dylibbundler
,用install_name_tool
更改了此名称,如下所示:
install_name_tool -id "@loader_path/dylibs/libcvextern.dylib" libcvextern.dylib
其中@loader_path
是一个特殊的Mac变量,允许相对于应用程序路径使用。
答案 1 :(得分:1)
这些是我先检查的东西。 你的pak是完整的吗?听起来你可能已经检查过了。 2.您的测试系统是否安装了opencv二进制文件并且在路径中。