【问题标题】:Eclipse gtkmm cross-compiling for Raspberry Pi, can't find file ft2build.h even though it does existEclipse gtkmm 为 Raspberry Pi 交叉编译,即使文件 ft2build.h 确实存在也找不到
【发布时间】:2013-09-13 15:23:33
【问题描述】:

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

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

【问题讨论】:

    标签: linux eclipse cross-compiling raspberry-pi gtkmm


    【解决方案1】:

    我创建了一个新项目,像以前一样设置交叉编译。然后我在我的 Raspberry Pi 上安装了 gtkmm,然后将 /usr//lib/ 文件夹从 Pi 的 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 上运行!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      相关资源
      最近更新 更多