2

我尝试按照本教程https://wiki.qt.io/RaspberryPi2EGLFS为 RPi 2 交叉编译 Qt 5.6但我收到此错误

qeglfsbrcmintegration.cpp:35:22: fatal error: bcm_host.h: No such file or directory
 #include <bcm_host.h>
                      ^
compilation terminated.
make[6]: *** [.obj/qeglfsbrcmintegration.o] Error 1
make[6]: Leaving directory `/home/hamed/raspi/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm'
make[5]: *** [sub-eglfs_brcm-make_first] Error 2
make[5]: Leaving directory `/home/hamed/raspi/qtbase/src/plugins/platforms/eglfs/deviceintegration'
make[4]: *** [sub-deviceintegration-make_first-ordered] Error 2
make[4]: Leaving directory `/home/hamed/raspi/qtbase/src/plugins/platforms/eglfs'
make[3]: *** [sub-eglfs-make_first] Error 2
make[3]: Leaving directory `/home/hamed/raspi/qtbase/src/plugins/platforms'
make[2]: *** [sub-platforms-make_first] Error 2
make[2]: Leaving directory `/home/hamed/raspi/qtbase/src/plugins'
make[1]: *** [sub-plugins-make_first] Error 2
make[1]: Leaving directory `/home/hamed/raspi/qtbase/src'
make: *** [sub-src-make_first] Error 2

怎么了?

4

3 回答 3

1

错误消息指示两个问题之一。任何一个:

  1. 该文件bcm_host.h在您的系统上不存在,或者:
  2. 该文件存在,但编译器找不到它。

要查看文件是否存在,可以运行:

$ find / -name bcm_host.h 2>/dev/null

如果bcm_host.h不存在,您需要以某种方式解决这种情况。这篇文章建议安装libraspberrypi-dev.

一旦bcm_host.h存在于您的系统上,您需要确保编译器可以找到它。这篇文章提到,可能有必要创建一个符号链接到构建系统正在寻找包含文件的任何地方。要查看默认包含路径是什么,您可以运行:

$ echo | cpp -Wp,-v

然后相应地制作您的符号链接。或者,您可以尝试make以这种方式调用:

$ CPPFLAGS=-I/path/to/bcm_host.h make
于 2016-01-03T19:08:45.313 回答
1

添加这个文件:~/raspi/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm/eglfs_brcm.pro

INCLUDEPATH += ~/raspi/sysroot/opt/vc/include

后 :

$ make

make install
于 2016-10-05T16:05:55.183 回答
1

在您的 .pro 文件(项目文件)中添加:

INCLUDEPATH += /home/hamed/raspi/sysroot/opt/vc/include

然后重新编译。

如果它不起作用,请删除构建文件夹,然后重新编译。

于 2016-01-03T22:00:00.743 回答