交叉编译树莓派

Cross compiling raspberry pi

本文关键字:交叉编译      更新时间:2023-10-16

我想为我的树莓派交叉编译一个程序。我决定使用 arm-linux-gnueabihf-gcc-7 编译器,将/usr 和/lib/复制到我的主机到目录 ~/raspberrypi/rootfs 中,并设置一个配置如下的 cmake:

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# Specify the cross compiler
SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc-7)
SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++-7)

一切正常,直到我运行 make,然后我收到错误:

/usr/arm-linux-gnueabihf/include/sys/cdefs.h:467:49: error: missing binary operator before token "("
#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)
^

还有一些相同类型的...

有没有人知道那里出了什么问题?

感谢您的帮助!

也许您的包含路径缺少(正确的(features.h

当使用树莓派的Qt 5.15交叉编译QTCreator时,我遇到了同样的错误。

在 pro 文件中添加INCLUDEPATH += somepath/sysroot/usr/include修复了它。也就是说,将目标计算机的/usr/include添加到包含路径。(当然,在您的系统上使用正确的系统根路径...