我试图用EmguCV用MonoDevelop做一些图像处理。我可以构建项目,但如果我尝试从MonoDevelop内部调试/运行它,我得到一个Gob
说它找不到libdl.so。如果我直接运行已编译的程序(DllNotFoundException
),一切正常
这是一个控制台应用程序,我对Gtk#测试项目的行为非常相似,它说,它无法找到libgdiplus.so。我可以用mono emgucv_test.exe
找到两个库。
所有这些让我相信,这既不是缺少libs,EmguCV / OpenCV也不是单声道但是使用MonoDevelop的问题。
我尝试在项目运行配置中设置ldconfig -p |grep libgdiplus
环境变量,这没有任何帮助。我无法在网上找到任何相关内容,也不知道我还能尝试什么。有什么问题,如何解决这个问题?这只是一个测试应用程序,对于真正的项目,我需要能够使用MonoDevelop正确调试。
我在VirtualBox VM中运行Lubuntu 16.10中的MonoDevelop 6.1.1(flatpak版本)(也在Ubuntu 16.04中测试过),我安装了最新的mono(v4.6.1)。
更新
我刚刚使用LD_LIBRARY_PATH
软件包(版本5.10)安装了MonoDevelop进行了测试。有了这个就行了。
我对flatpak一无所知,但我已经在某个地方读过,它对于应用来说是一种沙盒环境。如果这是真的,我遇到的问题可能是由于这个吗?
答案 0 :(得分:1)
这基本上是预期的。
正如您所理论的那样,问题是FlatPak应用程序在沙箱中运行。 FlatPak MonoDevelop只能看到:
在这些地方之外看不到任何东西。
要探索,您可以使用flatpak run --command=bash com.xamarin.MonoDevelop
在运行时内部为您提供一个shell,以便您可以看到实际内容。
如果没有捆绑您想要的东西,您有三种选择:
将沙盒用于GUI应用程序是Linux桌面应用程序的一种趋势,包括IDE(例如GNOME Builder具有完全相同的限制)