如何使用scons命令在Raspberry Pi 2上构建IoTivity框架

时间:2016-03-03 18:13:02

标签: boost raspberry-pi2 armv7 iotivity

我正在尝试在Raspberry Pi 2上构建IoTivity框架,它具有arm架构并在Ubuntu Mate 15.04上运行。我继续在linux上建立IoTivity的官方指南(Linux: Getting started)。主要问题是当我想使用scons命令构建IoTivity时:

scons TARGET_OS=linux TARGET_ARCH=arm

终端输出:

filip@fiip:~/iotivity$ scons TARGET_OS=linux TARGET_ARCH=arm
scons: Reading SConscript files ...
Reading linux configuration script
Checking for POSIX Thread Support...no
Given Transport is ALL
Given OS is linux
BUILD_SAMPLE is ON
CA Transport is ALL
Reading ca script ALL
Reading common folder script
Reading util folder script
Reading IP adapter script
Reading BT EDR adapter script
Reading BLE adapter script for linux
Include path is ['./../api', '../api', '/home/filip/iotivity/deps/linux/include', '/home/filip/iotivity/extlibs/tinycbor/tinycbor/src', '/home/filip/iotivity/out/linux/arm/release/resource/csdk/logger/./include', '/home/filip/iotivity/out/linux/arm/release/resource/c_common', '/home/filip/iotivity/out/linux/arm/release/resource/c_common/oic_malloc/include', '/home/filip/iotivity/out/linux/arm/release/resource/c_common/oic_string/include', '/home/filip/iotivity/out/linux/arm/release/resource/c_common/oic_time/include', '/home/filip/iotivity/out/linux/arm/release/resource/c_common/ocrandom/include', '/usr/include/uuid', '../inc', '../lib/libcoap-4.1.1', '/resource/csdk/logger/include/', '../common/inc', '../util/inc', 'common/inc/', '/home/filip/iotivity/resource/csdk/logger/include/', './../inc', './../lib/libcoap-4.1.1', './../common/inc', './../util/inc', '/usr/include/gio-unix-2.0/', '/usr/include/glib-2.0', '/usr/lib/arm-linux-gnueabihf/glib-2.0/include']
Files path is ['./../common/src/uarraylist.c', './../common/src/ulinklist.c', './../common/src/uqueue.c', './../common/src/caremotehandler.c', './../common/src/camutex_noop.c', './../util/src/cautilinterface.c', './../util/src/camanager/linux/caleconnectionmanager.c', './adapter_util/caadapterutils.c', './adapter_util/cafragmentation.c', './cablockwisetransfer.c', './caconnectivitymanager.c', './cainterfacecontroller.c', './camessagehandler.c', './canetworkconfigurator.c', './caprotocolmessage.c', './caqueueingthread.c', './caretransmission.c', './ip_adapter/caipadapter.c', './ip_adapter/caipserver.c', './ip_adapter/linux/caipnwmonitor.c', './bt_edr_adapter/caedradapter.c', './bt_edr_adapter/linux/caedradapter.c', './bt_le_adapter/caleadapter.c', './bt_le_adapter/linux/characteristic.c', './bt_le_adapter/linux/descriptor.c', './bt_le_adapter/linux/service.c', './bt_le_adapter/linux/advertisement.c', './bt_le_adapter/linux/utils.c', './bt_le_adapter/linux/central.c', './bt_le_adapter/linux/peripheral.c', './bt_le_adapter/linux/client.c', './bt_le_adapter/linux/server.c', './bt_le_adapter/linux/recv.c', './bt_le_adapter/linux/caleinterface.c', './bt_le_adapter/linux/object_manager-glue.c', './bt_le_adapter/linux/bluez-glue.c']
Reading ca script ALL
Reading sample application build script
Sample secured flag is 0
 sample src ['./sample_main.c']

*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************

*** Checking for installation of google unit test 1.7.0 ***
*** Checking for installation of hippomocks ***

*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are     *
* installed!                                                                  *
*******************************************************************************


*********************************** Warning ***********************************
* You are trying cross build, please make sure (arm) version libraries are
* installed!                                                              *
*******************************************************************************

Checking for C++ library boost_thread... no
Did not find boost_thread, exiting!

我知道我需要安装arm gcc和g ++编译器,所以我安装了 arm-linux-gnueabihf-gcc-4.8 arm-linux-gnueabihf-g ++ - 4.8 我根据this advice更新了 project-config.jam

我试过这个 tutorial 但不成功。我做错了什么 ?我很乐意提供任何建议,指导如何在armv7架构上构建IoTivity框架。感谢。

3 个答案:

答案 0 :(得分:4)

您缺少boost-thread和其他Boost包的标头。在开发系统上安装它们:

sudo apt-get install libboost-dev libboost-program-options-dev libexpat1-dev libboost-thread-dev uuid-dev libssl-dev scons libglib2.0-dev

或检查https://wiki.iotivity.org/doku.php?id=build_iotivity_for_raspberry_pi

答案 1 :(得分:0)

经过多次努力(尝试了其他答案)。我终于想出了为什么会出现这个错误的原因。我已经为x86构建了iotivity项目。它已经为x86编译了一些库。为了解决这个问题,需要获得新的iotivity副本,然后为arm建立iotivity。

答案 2 :(得分:-1)

您似乎缺少包含Boost头文件的软件包。这很容易纠正:

sudo apt-get install libboost-dev

如果您的来源取决于很多Boost套餐,您可能更喜欢libboost-all-dev