gpt4 book ai didi

c++ - Beaglebone 上的 Gtk+ 绑定(bind)(arm linux)

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:27 24 4
gpt4 key购买 nike

我正在尝试让 Gtk+ 在我的 Beaglebone Black(armv7l GNU/Linux) 上运行,它与 Raspberry Pi 非常相似,除了绑定(bind)之外,我几乎得到了它。

我正在构建示例 here进入正题

exampleappwindow.h

class ExampleAppWindow : public Gtk::ApplicationWindow {
...

Glib::RefPtr<Glib::Binding> m_prop_binding
}

我得到一个错误:

no member named 'Binding' in namespace 'Glib'

我正在使用 VisualGDB 交叉编译的 Windows 10 专业版系统上进行开发,但似乎无法使用 pkg-config --cflags --libs gtkmm-3.0在任何地方,VisualGDB 似乎都不知道如何处理它,所以我不得不手动设置库并包含 pkg-config 命令,也许这与此有关。

我查找了 GLib::Bindings,发现它在 libglibmm 中声明。所以我想我需要单独安装,但是当我安装 libglibmm2.4-dev 时还是没有GLib::Binding甚至 glibmm/bindings.h .

我使用 find / -name *binding.h 进行了搜索并且有一个文件:

/usr/include/glib-2.0/gobject/gbinding.h

这是 gtkmm 绑定(bind)的基类吗?我知道 libgtkmm 只是一个 C++ 包装器,我是否需要添加预处理器定义以包含正确的 header ?

我是否缺少一个库或者 GLib 的绑定(bind)部分是否不适用于我的发行版?我在 Linux 上还是个新手,不确定如何找出一个发行版中包含的内容与另一个发行版中的内容。

我认为只包括 #include <gtkmm.h>会引入所有内容,也许我需要明确包含另一个库或告诉 Gtk+ 要使用哪个绑定(bind)库?

在安装 gtkmm 库时是否有一个设置步骤没有执行?我使用 apt-get install libgtkmm-3.0-dev 安装了库

编辑

我在这方面做了更多的工作,发现绑定(bind)是通过 dbus-glib 绑定(bind)​​提供的。我不确定我是否需要特定版本的 GLib 来启用绑定(bind),或者我是否需要一起安装另一个包。我已经看到对 libdbus-glib2.0-cil 的引用,所以我安装了开发版本但仍然没有。

有一个命令dbus-binding-tool ,我是否应该在文件上运行此命令以启用绑定(bind)?有对该命令的引用,但没有说明应该如何使用它。

最佳答案

在为此工作了几天之后,我想我得出的结论是,截至本回答发布之时,Beaglebone Black 上的 gtk+ 支持还不完整。有一个包 dbus-glib-cli 确实提供了绑定(bind)支持,但并不那么容易,因为您基本上必须创建一个架构文件,然后运行一个编译工具来生成一个绑定(bind) header ,非常接近C++ xml 绑定(bind)库是如何完成的。

据我所知,更好的方法是放弃 gtk+ 并继续使用 Qt。看起来对 Qt 有更多的支持,一切似乎开箱即用。

很抱歉我不能发布一个修复,但是如果绑定(bind)不是必需的或者如果你想使用 dbus 绑定(bind)然后确保从 jessie-backports 安装 libgtkmm 这似乎有一些修复和删除对 gtk+ 2.0 的依赖。

要启用 Backports 运行:

sudo nano /etc/apt/sources.list

并取消注释或插入:

deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian jessie-backports main contrib non-free

然后使用

sudo apt-get -t jessie-backports install libgtkmm-3.0-dev

这将安装 gtk+ 所需的一切,包括 dbus 绑定(bind)。

关于c++ - Beaglebone 上的 Gtk+ 绑定(bind)(arm linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com