簡體   English   中英

將GTK3.0項目移植到GTK2.0

[英]Porting GTK3.0 project to 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安裝了最新版本,但是仍然沒有運氣。

這個問題有解決方案嗎?

謝謝。

事實證明,某些文件夾,包括路徑中帶有arm-linux-gnueabihf文件夾,本來應該由我手動包括在內。 最后,我通過SSH連接到RPI設備,並復制以下命令的輸出:

pkgconfig --clfags --libs gtk+-2.0

然后,我復制了所有包含目錄語句(即以-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

簡而言之,這行得通,而且我什至不必更改代碼的任何一行。 現在一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM