c# – 与Linux中的本机库互 *** 作

c# – 与Linux中的本机库互 *** 作,第1张

概述我正在用C#编写一个应用程序,它是跨平台的.它将DllImport用于几个不同的库.它也是x32和x64. 它似乎适用于我自己编译的.dll / .so.我将x32共享库放在x32子文件夹中,将x64共享库放在x64子文件夹中. 在Windows上通过.net框架我根据当前的情况调用SetDllDirectory(“x32”或“x64”) 运行.在单声道上,通过windows,linux或mac, 我正在用C#编写一个应用程序,它是跨平台的.它将Dllimport用于几个不同的库.它也是x32和x64.
它似乎适用于我自己编译的.dll / .so.我将x32共享库放在x32子文件夹中,将x64共享库放在x64子文件夹中.

在Windows上通过.net框架我根据当前的情况调用SetDllDirectory(“x32”或“x64”)
运行.在单声道上,通过windows,linux或mac,我在Randomlibrary.dll.config中使用DllMap.它适用于位于x32或x64目录中的文件.

但是,我也将Dllimport用于我没有编写的库,例如FreeType2.在windows上,我只是将构建的库推送到两个子文件夹中.但是在Linux上,我宁愿使用你可以通过友好的本地包管理器安装的libfreetype6库.我可以将DllMap链接硬编码到/usr/lib/x86_64-linux-gnu/libfreetype.so.6,但我认为freetype文件会根据你使用的发行版而改变.

有什么简单的方法,它可以找到libfreetype.so无论我使用什么发行版?

解决方法 对linux使用Dllimport(“libfreetype.so.6”)就足够了,因为系统应配置为正确处理它.确保安装了正确的软件包.
如果它不起作用,您可能有一个配置错误的系统:发布您获得的错误,LD_liBRARY_PATH env var值,/ etc / ld.so.conf的内容和/etc/ld.so.conf.d中的文件/.
的输出

/sbin/ldconfig -p |grep freetype

也会很有用.

总结

以上是内存溢出为你收集整理的c# – 与Linux中的本机库 *** 作全部内容,希望文章能够帮你解决c# – 与Linux中的本机库互 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1243460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存