2

我正在尝试在 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 flags,选择详细(-v)并添加pkg-config gtkmm-3.0 --cflags --libs到 Cross G++ Linker->Miscellaneous- 来解决这个问题>链接器标志。(在 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 库中禁用了 freetype 字体。这是通过在 中注释掉#define CAIRO_HAS_FT_FONT 1cairo-features.h。下一个问题是Eclipse找不到gtkmm使用的库,所以我添加\usr\libs到(project)Properties->C/C++ General->Paths and Symbols->Library paths。完成所有这些后,它在尝试构建时返回以下错误:/usr/lib//libgtkmm-3.0.so: file not recognized: File format not recognized. 这种文件格式似乎是标准的,那么现在出了什么问题?

4

1 回答 1

1

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

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

于 2013-09-15T09:31:24.727 回答