【问题标题】:How to attach third-part libraries in release version如何在发布版本中附加第三方库
【发布时间】:2015-11-10 21:56:38
【问题描述】:

我有一个适用于 Windows 的 .NET 4 程序。我正在尝试将它移植到带有单声道和 Xamarin 工作室的 Mac 计算机上。 我有第三方库EmguCV(它是OpenCV 库的包装器)。我正在使用official manual 来安装它。它将OpenCVEmguCV 都安装到

库/Python/2.7/site-packages/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:

  • -r:/Library/Python/2.7/site-packages/emgucv/lib
  • -r:/Library/Python/2.7/site-packages/emgucv/bin

当我查看 pak 内部时,我发现了这个库。但是程序仍然没有找到它..

我猜openCV 本地库有问题,但我不知道出了什么问题:(

【问题讨论】:

  • 不确定 C# ... 通常您只需将 DLL 二进制文件添加到工作目录或其他任何系统/程序可以找到它们的地方
  • 是的。对于windows来说是真的。但对于 MAC,它不起作用。我将所有 openCV dylib 放到我的调试文件夹中 - 又出现错误。

标签: c# macos opencv xamarin emgucv


【解决方案1】:

嗯,我在 mac 论坛上花了很多时间 :)

关键是 OSX 动态库 (*.dylib) 有一个“安装名称”,它告诉操作系统希望在哪里找到库。 因此,要使用它 - 我应该更改“安装名称”。为此 - 我使用了一个工具 dylibbundler 将这个名称更改为 install_name_tool,如下所示:

install_name_tool -id "@loader_path/dylibs/libcvextern.dylib" libcvextern.dylib

@loader_path 是一个特殊的 Mac 变量,它允许使用相对于应用程序路径的变量。

【讨论】:

    【解决方案2】:

    这些是我首先要检查的内容。 1. 你的包装是否完整。听起来你可能已经检查过了。 2.您的测试系统是否安装了opencv二进制文件并在路径中。

    【讨论】:

    • 每个用户不必单独安装 opencv 二进制文件,但每个用户都必须有权访问 opencv 二进制文件所在的位置。这可以通过确保路径变量包含您的 opencv 二进制文件所在的目录来实现。或者,您可以将您的 opencv 二进制文件符号链接到每个用户路径中已经存在的目录位置。
    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 2019-05-19
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多