alexa / avs-device-sdk

An SDK for commercial device makers to integrate Alexa directly into connected products.
https://developer.amazon.com/alexa/alexa-voice-service
Apache License 2.0
1.26k stars 604 forks source link

cross compile issues #239

Closed paragone closed 7 years ago

paragone commented 7 years ago

hi guys, i cross compile the sdk with gcc of 4.8.3 and meet some problem.

[ 0%] Building CXX object AVSCommon/CMakeFiles/AVSCommon.dir/AVS/src/ExceptionEncounteredSender.cpp.o In file included from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskThread.h:25:0, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:24, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/include/AVSCommon/AVS/ExceptionEncounteredSender.h:26, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/src/ExceptionEncounteredSender.cpp:23: /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h: In function 'void alexaClientSDK::avsCommon::utils::threading::forwardPromise(std::shared_ptr<std::promise >, std::future*) [with T = void]': /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h:152:11: error: invalid use of incomplete type 'class std::future' future->get(); ^ In file included from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:21:0, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/include/AVSCommon/AVS/ExceptionEncounteredSender.h:26, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/src/ExceptionEncounteredSender.cpp:23: /opt/toolchain/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/future:113:11: error: declaration of 'class std::future' class future; ^ In file included from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskThread.h:25:0, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:24, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/include/AVSCommon/AVS/ExceptionEncounteredSender.h:26, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/src/ExceptionEncounteredSender.cpp:23: /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h:153:12: error: invalid use of incomplete type 'class std::promise' promise->set_value(); ^ In file included from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:21:0, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/include/AVSCommon/AVS/ExceptionEncounteredSender.h:26, from /home/alexa/avs-device-sdk-1.1.0/AVSCommon/AVS/src/ExceptionEncounteredSender.cpp:23: /opt/toolchain/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/future:122:11: error: declaration of 'class std::promise' class promise;

can you guys give some advie,

chenxiaoqun commented 7 years ago

recommend to update the toolchain, the SDK source code uses lots of new C++ features

JamieMeyers commented 7 years ago

@paragone your compiler does not meet the minimum requirements per https://github.com/alexa/avs-device-sdk/wiki/Linux-Quick-Start-Guide#minimum-requirements-and-dependencies. Please update to GCC 4.8.5 or later.

octGitHub commented 6 years ago

@JamieMeyers

Hi, I have quest about GCC version. ( Mine is 4.7.3 ... what a pity )

Why you chosen  the GCC 4.8.5 to be the minus version when you started this SDK ?
It's just because the dependent library needs or 
most of the embedded  system has higher version  toolchain  than GCC 4.8.5 ?
junlon2006 commented 6 years ago

Mine gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 4%] Building CXX object AVSCommon/CMakeFiles/AVSCommon.dir/AVS/src/CapabilityAgent.cpp.o /usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake) [ 4%] Building CXX object AVSCommon/CMakeFiles/AVSCommon.dir/AVS/src/DialogUXStateAggregator.cpp.o In file included from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskThread.h:23:0, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:22, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/include/AVSCommon/AVS/DialogUXStateAggregator.h:28, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/src/DialogUXStateAggregator.cpp:16: /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h: In function ‘void alexaClientSDK::avsCommon::utils::threading::forwardPromise(std::shared_ptr<std::promise >, std::future*) [with T = void]’: /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h:150:11: error: invalid use of incomplete type ‘class std::future’ future->get(); ^ In file included from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:19:0, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/include/AVSCommon/AVS/DialogUXStateAggregator.h:28, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/src/DialogUXStateAggregator.cpp:16: /usr/arm-linux-gnueabi/include/c++/5/future:115:11: note: declaration of ‘class std::future’ class future; ^ In file included from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskThread.h:23:0, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/Executor.h:22, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/include/AVSCommon/AVS/DialogUXStateAggregator.h:28, from /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/AVS/src/DialogUXStateAggregator.cpp:16: /home/junlon2006/workspace/amazon/sdk-folder/sdk-source/avs-device-sdk/AVSCommon/Utils/include/AVSCommon/Utils/Threading/TaskQueue.h:151:12: error: invalid use of incomplete type ‘class std::promise’ promise->set_value(); ^ In file included from /home/junlon2006/workspace/amazon/sdk-folder/sdk-s

ghost commented 5 years ago

@junlon2006 When I cross-compile, I have the same error as you. How do you solve it? My cross-compilation toolchain is csky-linux-gcc v6.3

junlon2006 commented 5 years ago

@junlon2006 When I cross-compile, I have the same error as you. How do you solve it? My cross-compilation toolchain is csky-linux-gcc v6.3

hf works

ghost commented 5 years ago

@junlon2006 What do you mean? Please say more clearly, thank you!