【发布时间】:2019-09-19 10:56:22
【问题描述】:
我对交叉编译很陌生。从arm 下载 arm-linux-gnueabihf 工具后。我尝试使用名为 arm-linux-gnueabihf-g++ 和 arm-linux-gnueabihf-gcc 的二进制文件来编译我的代码。我的命令看起来像:
~/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -Isrc -I/usr/include -std=c++11 -Wall -Wno-unknown-pragmas -O0 -g3 -D__DEBUG_BUILD__ -DDEVELOPMENT -MMD -c -o "Debug/src/BatteryStatus.o" "src/BatteryStatus.cpp"
我立即遇到了这个问题:
~/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/stdlib.h:133:35: error: missing binary operator before token "("
#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
这个问题发生在工具链中很奇怪,我预计我正在使用的库中存在一些不兼容问题。该环境需要 CentOS 7.2、c++ 11,我正在为 x86_64 主机上的 ARM 32 位目标进行编译。构建一个简单的 hello world 程序很顺利,它在目标机器上编译并运行成功。
【问题讨论】:
标签: gcc compilation centos arm