gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:01 26 4
gpt4 key购买 nike

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

当我添加 #include <gtkmm.h> 时给一个程序,Eclipse 找不到库。这是通过转到 (project)Properties->C/C++ Build->Settings,然后添加 pkg-config gtkmm-3.0 --cflags --libs 来解决的。到 Cross G++ Compiler->Miscellaneous->Other flags,选择 verbose(-v) 并添加 pkg-config gtkmm-3.0 --cflags --libs跨 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 字体。这是通过注释掉 #define CAIRO_HAS_FT_FONT 1 来完成的。在 cairo-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 .虽然这种文件格式似乎是标准的,但现在出了什么问题?

最佳答案

我创建了一个新项目,像以前一样设置交叉编译。然后我在我的 Raspberry Pi 上安装了 gtkmm,然后将 /usr//lib/ 文件夹从 Pi 的 SD 卡复制到我的笔记本电脑。完成后,我转到 (project)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 上运行!

关于linux - Raspberry Pi 的 Eclipse gtkmm 交叉编译,找不到文件 ft2build.h,即使它确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com