Eclipse gtkmm 交叉编译 Raspberry Pi,找不到文件 ft2build.h 即使它确实存在



我正在尝试在Linux(Ubuntu)下的Eclipse中使用gtkmm交叉编译Raspberry Pi的C++程序。 我最初使用此处的指南设置交叉编译器,该指南运行良好。

当我将#include <gtkmm.h>添加到程序中时,Eclipse 找不到该库。 此问题已通过转到(项目)属性->C/C++ Build->Settings,然后将pkg-config gtkmm-3.0 --cflags --libs添加到 Cross G++ 编译器->杂项->其他标志,选择 verbose(-v) 并将pkg-config gtkmm-3.0 --cflags --libs添加到 Cross G++ Linker->Miscellaneous->Linker 标志。(这两个标志添加都用 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-features.h中注释掉#define CAIRO_HAS_FT_FONT 1来完成的。 下一个问题是 Eclipse 找不到 gtkmm 使用的库,所以我在(项目)属性->C/C++ 通用>路径和符号->库路径中添加了usrlibs。完成所有这些操作后,它会在尝试构建时返回以下错误:/usr/lib//libgtkmm-3.0.so: file not recognized: File format not recognized 。 这种文件格式似乎是标准的,那么现在出了什么问题?

我创建了一个新项目,像以前一样设置为交叉编译。 然后,我在树莓派上安装了gtkmm,然后将/usr//lib/文件夹从Pi的SD卡复制到我的笔记本电脑上。 完成此操作后,我转到(项目)属性->C/C++ 构建->设置。然后,我将 pkg-config gtkmm-3.0 --cflags 列出的所有包含添加到 Cross G++ 编译器>包含,并将 pkg-config gtkmm-3.0 --libs 列出的所有库添加到 Cross G++ 链接器>库 - 但我更改了路径以指向 Pi 的库文件。

和以前一样,我不得不在开罗禁用自由字体。 不过,它仍然没有构建,因为包含的库依次依赖于其他库。因此,最后一步是在我复制的 Pi 文件中查找并包含所有列出的库。简单的 gtkmm 示例现在在 Eclipse 中构建,并且可以在 Pi 上运行!

相关内容

最新更新