[英]Eclipse gtkmm cross-compiling for Raspberry Pi, can't find file ft2build.h even though it does exist
我試圖在Linux(Ubuntu)下的Eclipse中使用gtkmm為Raspberry Pi交叉編譯C ++程序。 最初,我使用此處找到的指南設置了交叉編譯器,效果很好。
然后,當我將#include <gtkmm.h>
添加到程序中時,Eclipse找不到該庫。 通過轉到(項目)Properties-> C / C ++ Build-> Settings,然后將pkg-config gtkmm-3.0 --cflags --libs
到Cross G ++ Compiler-> Miscellaneous-> Other標志,選擇詳細(- v)並將pkg-config gtkmm-3.0 --cflags --libs
到Cross G ++ Linker-> Miscellaneous-> Linker Flags。 (這兩個標志的附加內容在Eclipse中都用`而不是'符號括起來,盡管此處未顯示。)
現在Eclipse給出以下錯誤: /usr/include/cairo/cairo-ft.h:46:22: fatal error: ft2build.h: No such file or directory
。 ft2build.h文件存在於我的計算機上的/usr/include
,但是Eclipse無法看到它,而且我沒有運氣尋找解決方案。 有什么建議嗎?
謝謝
更新:經過更多搜索后,我在gtkmm使用的cairo庫中禁用了自由字體。 這是通過在cairo-features.h
#define CAIRO_HAS_FT_FONT 1
注釋掉來完成的。 下一個問題是Eclipse找不到gtkmm使用的庫,因此我在(project)Properties-> C / C ++ General-> Paths and Symbols-> Library path中添加了\\usr\\libs
。 完成所有這些操作后,在嘗試構建時會返回以下錯誤: /usr/lib//libgtkmm-3.0.so: file not recognized: File format not recognized
。 不過,這種文件格式似乎是標准格式,所以現在出了什么問題?
我創建了一個新項目,像以前一樣進行交叉編譯。 然后,我在Raspberry Pi上安裝了gtkmm,然后將Pi的SD卡中的/usr/
和/lib/
文件夾復制到筆記本電腦中。 完成此操作后,我去了(project)Properties-> C / C ++ Build-> Settings。 然后,我將pkg-config gtkmm-3.0 --cflags
列出的所有包含項添加到Cross G ++編譯器->包含,並將pkg-config gtkmm-3.0 --libs
列出的所有庫pkg-config gtkmm-3.0 --libs
到Cross G ++ Linker-> Libraries-但是我更改了路徑以指向Pi的庫文件。
和以前一樣,我必須在cairo中禁用freetype字體。 不過,它仍然沒有構建,因為所包含的庫又依次依賴於其他庫。 因此,最后一步是找到所有列出的庫,並將它們包括在我復制過來的Pi文件中。 現在,簡單的gtkmm示例可以在Eclipse中構建,並且可以在Pi上運行!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.