将GTK3.0项目移植到GTK2.0

我正在构建一个简单的GUI应用程序,我已成功部署并运行在我的Raspberry PI开发板上。 但是,由于OpenCV依赖于GTK + v2.0的问题,我必须将我的应用程序反向移植到旧版本的GTK +。 我已经熟悉改变包含路径等等,以及我的makefile中的库链接命令。 但是,当我进行所有必要的更改时,在构建期间会发生致命错误。

Building dependencies file for main.o In file included from /opt/rpi/usr/include/gtk-2.0/gdk/gdkscreen.h:32:0, from /opt/rpi/usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31, from /opt/rpi/usr/include/gtk-2.0/gdk/gdk.h:32, from /opt/rpi/usr/include/gtk-2.0/gtk/gtk.h:32, from inc/ui.h:8, from main.c:10: /opt/rpi/usr/include/gtk-2.0/gdk/gdktypes.h:55:23: fatal error: gdkconfig.h: No such file or directory 

我已经确认我的GTK + v3.0安装缺少文件gdkconfig.h

 find /opt/rpi/usr/include -iname "gdkconfig*" ./gtk-3.0/gdk/gdkconfig.h 

但是我的GTK + v2.0安装没有这样的文件。 我已经通过apt-get安装了最新版本,但仍然没有运气。

这个问题有什么解决方案吗?

谢谢。

事实certificate,某些文件夹,包括那些在路径中使用arm-linux-gnueabihf文件夹,我没有手动包含它们应该拥有的文件夹。 最后,我将SSH连接到RPI设备,并复制以下命令的输出:

 pkgconfig --clfags --libs gtk+-2.0 

然后我复制了所有include目录语句(即:以-I开头的语句)并创建了一个包含该大量字符串的变量,并为所有库包含做了类似的操作。 以上命令的输出如下。

 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 

所以,简而言之,这是有效的,我甚至不需要改变我的代码的一行。 现在一切正常。