0

我有一台带有 armv5 处理器的 wifi 摄像头,想要交叉编译和 alljoyn 标准核心、服务框架,并且想要制作通知生产者应用程序。

但是我在交叉编译 alljoyn 时被卡住了。我正在使用gcc 4.3.3 版的 codesourcery arm 交叉编译器编译 alljoyn

最初我使用相同的命令,用于编译标准核心和服务框架。刚刚为 arm 和交叉编译器添加了CROSS_COMPILECPU标志。这是使用的命令,编译过程失败并出现与-std=c++11相关的一些错误

命令:

scons BINDINGS=cpp WS=off BT=off ICE=off OS=linux CPU=arm CROSS_COMPILE="/home/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-" SERVICES="about,notification,控制面板、配置、入职、sample_apps"

错误:

……

打印将头文件复制到“构建”目录

……

/* 编译第一个 cc 文件 */

cc1plus:错误:无法识别的命令行选项“-std=c++11”

scons: *** [build/linux/arm/debug/obj/services/config/cpp/samples/ConfigClientSample/ConfigClientMain.o] 错误 1

在这次失败之后,我找到了以下链接, https://wiki.allseenalliance.org/develop/building_and_running

它说我们可以在交叉编译时为 openwrt 编译 alljoyn。所以我准备并执行了以下命令:

scons BINDINGS=cpp WS=off BT=off ICE=off OS=openwrt CPU=openwrt TARGET_PATH=/home/CodeSourcery/Sourcery_G++_Lite/bin/ TARGET_CC=arm-none-linux-gnueabi-gcc TARGET_CFLAGS="-std= c++0x" TARGET_CPPFLAGS="-std=c++0x" TARGET_CXX=arm-none-linux-gnueabi-g++ TARGET_LINK=arm-none-linux-gnueabi-gcc TARGET_LINKFLAGS=""TARGET_AR=""TARGET_RANLIB="" STAGING_DIR=/usr/lib/x86_64-linux-gnu SERVICES="关于,通知,控制面板,配置,入职,sample_apps"

但是在编译开始之前出现错误,

scons: 读取 SConscript 文件...

检查 c++ 编译器对 -std=c++11 标志的支持...否

检查 c++ 编译器对 -std=c++0x 标志的支持...否

*** 编译器太旧,无法构建 AllJoyn。中止。

所以这是我的问题,

1.不使用openwrt可以交叉编译alljoyn标准客户端和服务吗?

2.使用openwrt进行交叉编译会影响alljoyn的任何功能吗?

3.我应该怎么做才能克服c++11/c++0x错误,我应该找到新的gcc版本来交叉编译我的代码。

如果有人为任何平台交叉编译了 alljoyn 标准核心和服务框架,请告诉我,请为此提供步骤/命令。

提前致谢。普拉提克

4

1 回答 1

0

这些交叉编译 AllJoyn 的步骤对我有用。 http://itisprakash.blogspot.com/2016/05/cross-compile-alljoyn-for-raspberrypi.html

于 2016-07-05T22:46:02.220 回答