Linux下Mono共享库的位置

3
我有一个用C++编写的共享库,想在Linux下与Mono一起使用, 我遵循了这篇指南 http://www.mono-project.com/Interop_with_Native_Libraries 我已经让它工作了,但我必须将我的库文件放入 /usr/lib 或 /lib 文件夹中。
是否有任何方法可以分发和使用我的.so文件而不是将它们复制到 /usr/lib 或 /lib 而是复制到我的Mono应用程序文件夹中?(当前目录,应用程序运行时)
一些用户使用软件可能没有根/管理员访问权限,因此他们无法安装/复制文件到 /usr/lib 或 /lib。

1
你真的是指C++吗?在Mono上无法进行C++互操作,只支持通过PInvoke进行C链接。 - IanNorton
SDK显示它是用于C++开发的,但库可能是用C编写的,因为C++的示例代码直接调用了库(没有类实例化)。SDK链接:http://www.starmicronics.com/support/SDKDocumentation.aspx - technomage
1个回答

4
我认为你在启动程序时需要使用环境变量LD_LIBRARY_PATH:
LD_LIBRARY_PATH=. mono yourapp.exe

好的,它可以工作...所以我只需要创建一个shell脚本来启动程序。 - technomage
或者,如果您知道安装位置,您可以在从C#中加载库之前将该文件夹添加到LD_LIBRARY_PATH中。 - IanNorton
@IanNorton:这是指写入到~/.bashrc文件吗? - technomage
@technomage,不,不要使用System.Environment调用。 - IanNorton
1
@tecnomage:根据http://www.mono-project.com/Guidelines:Application_Deployment#Layout_Recommendation的建议,启动器脚本是推荐的方法。 - knocte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接