【问题标题】:Mono shared library under linux locationlinux位置下的Mono共享库
【发布时间】:2012-06-13 09:04:08
【问题描述】:

我有一个用 C++ 编写的共享库,我想在 Linux 下与 Mono 一起使用, 我遵循本指南http://www.mono-project.com/Interop_with_Native_Libraries

我让它工作了,但我必须把我的库文件放到 /usr/lib 或 /lib 文件夹中。

我是否可以分发和使用我的 .so 文件,而不是将它们复制到 /usr/lib 或 /lib 中,而是复制到我的 Mono 应用程序文件夹中? (应用运行的当前目录)

某些使用该软件的用户可能没有 root / admin 访问权限,因此他们无法将文件安装/复制到 /usr/lib 或 /lib

【问题讨论】:

  • 你真的是指 c++ 吗?你不能在单声道上进行 c++ 互操作,只有通过 pinvoke 支持 C 链接
  • SDK 说它是用于 C++ 开发的,但是库可能是用 C 编写的,因为 C++ 的示例代码是直接调用库(没有类实例化)。 SDK链接starmicronics.com/support/SDKDocumentation.aspx

标签: c# linux mono linux-native-library


【解决方案1】:

我认为你必须在启动程序时使用环境变量 LD_LIBRARY_PATH:

LD_LIBRARY_PATH=。单声道 yourapp.exe

【讨论】:

  • 嗯,它可以工作......所以我只需要创建一个shell脚本来启动程序。
  • 或者,如果您知道您的安装位置,您可以在从 c# 中加载库之前将该文件夹添加到 LD_LIBRARY_PATH
  • @IanNorton:这意味着要写入 ~/.bashrc 吗??
  • @technomage,不,使用 System.Environment 调用
  • @tecnomage :根据mono-project.com/…,推荐使用启动器脚本来执行此操作
猜你喜欢
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 2011-01-12
  • 2011-02-28
相关资源
最近更新 更多