C# GtkSharp 3.22适用于单声道

C# GtkSharp 3.22适用于单声道,c#,mono,gtk,gtk3,C#,Mono,Gtk,Gtk3,我需要在Linux环境中使用Mono编写一个Gtk应用程序。由于我需要>=3.22中提供的特定功能,我无法使用默认的Gtk2库 迄今为止尝试的步骤: 安装Gtk3库版本3.22.24.0sudo apt get install libgtk-3-dev 在MonoDevelop中,安装它应该提供最新的Gtk绑定版本3.22.6.4 运行一个简单的Gtk应用程序(如main中的Gtk.application.Init())会触发以下异常: System.DllNotFoundException:

我需要在Linux环境中使用Mono编写一个Gtk应用程序。由于我需要>=3.22中提供的特定功能,我无法使用默认的Gtk2库

迄今为止尝试的步骤:

  • 安装Gtk3库版本3.22.24.0
    sudo apt get install libgtk-3-dev
  • 在MonoDevelop中,安装它应该提供最新的Gtk绑定版本3.22.6.4
  • 运行一个简单的Gtk应用程序(如main中的
    Gtk.application.Init()
    )会触发以下异常:

    System.DllNotFoundException: libgtk-3.so.0
    
    尽管
    ldconfig-p | grep libgtk
    /usr/lib/x86_64-linux-gnu
    下返回了这样一个文件

    我觉得我错过了一些很明显的东西。我正在运行Ubuntu17.10(x86),MonoDevelop7.1版本1291

    编辑——问题在于MonoDevelop是通过Flatpak安装的,Flatpak提供了一个沙箱环境,可以“屏蔽”应用程序,使其不受外部引用(包括Gtk库)的影响。因此,我几乎一字不差地安装了Mono并编译了Mono:

  • 添加repo列表并更新所有内容(Ubuntu的“工厂默认”repo附带了4.0版本的Mono,这不足以编译Monodevelop,因为它缺少MSBuild):

  • 安装所需的依赖项:

    sudo apt install -y autoconf automake cmake fsharp git gnome-sharp2 gtk-sharp2 libssh2-1-dev mono-complete referenceassemblies-pcl zlib1g-dev
    
  • 从git克隆Monodevelop,X是我们选择的版本(使用7.3.0.708测试),最后一个参数是源所在的文件夹:

    git clone https://github.com/mono/monodevelop.git --branch monodevelop-X --depth 1 X
    
  • 配置、制作和制作安装:

    ./configure --profile=stable --enable-release
    make
    sudo make install
    
  • 安装GtkSharp 3:

    sudo apt-get install libgtk-3-dev
    
  • 就这样。使用上述方法开发的应用程序将正常工作


    由于某种原因,我的应用程序在MonoDevelop中运行时崩溃(与由
    Builder.ExtendWithTemplate
    导入的Glade文件有关),但在命令行
    mono.exe
    中运行,因此我的解决方案可能不是最好的,但这只是一个开始。

    您知道如何将GTK3与MonoDevelop一起使用吗?
    sudo apt-get install libgtk-3-dev