如何在发布版本中附加第三方库
本文关键字:第三方 版本 布版本 | 更新日期: 2023-09-27 18:08:20
我有一个Windows版本的。net 4程序。我正在尝试将它移植到带有mono和Xamarin studio的Mac电脑上。我有第三部分库EmguCV
(它是OpenCV
库的包装器)。我是用官方手册安装的。它将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
库到我的包:
- - r:/图书馆/Python/2.7/网站/emgucv/lib
- - r:/图书馆/Python/2.7/网站/emgucv/bin
当我在pak -里面查找时,我找到了这个库。但是程序仍然没有找到…
我猜openCV
原生库有问题,但我不知道是什么问题:(
嗯,我花了很多时间在mac论坛上:)
关键是OSX动态库(*.dylib)有一个"安装名",它告诉操作系统期望在哪里找到库。所以,工作与它-我应该改变"安装名称"。为了做到这一点,我使用了dylibbundler
工具,用install_name_tool
更改了这个名称,如下所示:
install_name_tool -id "@loader_path/dylibs/libcvextern.dylib" libcvextern.dylib
其中@loader_path
是一个特殊的Mac变量,它允许使用相对于应用程序路径
这些是我首先要检查的东西。1. 你的包完整了吗?听起来你好像已经查过了。2. 您的测试系统是否已经安装了opencv二进制文件,并在