【问题标题】:Cross Compile allJoyn on Ubuntu for RaspberryPI在 Ubuntu 上为 Raspberry PI 交叉编译 allJoyn
【发布时间】:2016-09-22 10:27:48
【问题描述】:

我正在尝试在 Ubuntu 16.04 上为 RaspberryPI2 交叉编译 AllJoyn。我按照 Linux 交叉编译部分中提到的https://wiki.allseenalliance.org/develop/building_and_running 步骤操作。

当我尝试使用命令编译 AllJoyn scons OS=openwrt CPU=openwrt BINDINGS=cpp,c,java WS=off BT=off ICE=off SERVICE="about,notification,controlpannel,config,onboarding,sample_apps" 我收到以下错误

    scons: Reading SConscript files ...
Checking c++ compiler support for -std=c++11 flag... Printing env dump...
{ 'CPATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/include',
  'HOME': '/home/jha',
  'LIBRARY_PATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/lib:/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/libexec',
  'PATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin',
  'STAGING_DIR': '/home/jha/rpi/linux/usr'}
no
Checking c++ compiler support for -std=c++0x flag... Printing env dump...
{ 'CPATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/include',
  'HOME': '/home/jha',
  'LIBRARY_PATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/lib:/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/libexec',
  'PATH': '/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin',
  'STAGING_DIR': '/home/jha/rpi/linux/usr'}
no
*** Compiler too old to build AllJoyn.  Aborting.

在检查编译器之前,我修改了 build_core/conf/openwrt 下的 SConscript 文件以打印环境变量。

为了验证我的编译器不是过时的编译器,我尝试了以下

  1. 创建了一个名为“test.cc”的文件,其中包含一行int main(void) { return 0; }
  2. 使用命令/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -std=c++11 -o ../test ../test.cc编译文件
  3. 文件编译没有任何错误
  4. arm-linux-gnueabihf-g++ 版本为 4.9.3

以下是我在运行 scons 命令之前设置的环境变量的值

HOST_HOME="/home/jha/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf"
TARGET_PREFIX="arm-linux-gnueabihf-"
export TARGET_PATH="${HOST_HOME}/bin"
export TARGET_CC="${TARGET_PREFIX}gcc"
export TARGET_CPPFLAGS=""
export TARGET_CFLAGS="-I${HOST_HOME}/arm-linux-gnueabihf/sysroot/usr/include"
export CXXFLAGS="-std=c++11"
export TARGET_CXX="${TARGET_PREFIX}g++"
export TARGET_LINK=$TARGET_CC
export TARGET_LINKFLAGS="-L${HOST_HOME}/arm-linux-gnueabihf/sysroot/usr/lib -L${HOST_HOME}/arm-linux-gnueabihf/sysroot/usr/libexec"
export TARGET_LDFLAGS=$TARGET_LINKFLAGS
export TARGET_AR="${TARGET_PREFIX}ar"
export TARGET_RANLIB="${TARGET_PREFIX}ranlib"
export STAGING_DIR="/home/jha/rpi/linux/usr"
export CROSS_PREFIX=$TARGET_PREFIX
export CROSS_PATH=$TARGET_PATH
export CROSS_CFLAGS="$TARGET_CFLAGS -march=armv7 "
export CROSS_LINKFLAGS=$TARGET_LINKFLAGS
export CROSS_COMPILE=$TARGET_PREFIX

我无法在 Ubuntu 16.04 机器上为 RaspberryPI2 交叉编译 AllJoyn。任何指向正确方向的指针都将不胜感激。提前谢谢你。

【问题讨论】:

    标签: cross-compiling alljoyn


    【解决方案1】:

    我可以弄清楚为 ARM 交叉编译 AllJoyn,以下是步骤http://itisprakash.blogspot.com/2016/05/cross-compile-alljoyn-for-raspberrypi.html

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多