Я пытаюсь перенести большой проект, который сильно использует возможности С++ 11, в Raspberry Pi. В проекте используется CMAKE, и я использую crosstool-ng для кросс-компиляции. Я установил зависимости на Pi и скопировал их локально, и мне удалось заставить CMAKE найти их. Некоторые из кода строятся правильно и производят вывод ARM. Однако большая часть кода выходит из строя с запутанным выходом GCC, что я уверен, что это связано с поддержкой C + + 11/template. Например, я получаю такие ошибки:
-
error: 'mutex' in namespace 'std' does not name a type
(этот файл включает <thread> и эта ошибка исчезает, если я также включаю <mutex> , а не требование для x86 Ubuntu) -
error: expected class-name before '{' token
(строка до {is:template<typename _Res> class __basic_future : public std::__future_base
) -
error: '__result_type' does not name a type
(это, вероятно, происходит из-за ошибки выше)
Эти ошибки выглядят так, как будто компилятор ARM g++ просто не любит шаблоны. Используемая версия g++ arm-unknown-linux-gnueabi-g++ (crosstool-NG 1.18.0) 4.7.3 20130102 (prerelease)
.
Может ли кто-нибудь указать мне в правильном направлении?
Изменить: вот что g++ выглядит для одного из файлов в ps
:
arm-unknown-linux-gnueabi-g++ -DprojectCore_EXPORTS -fPIC
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/freetype2
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/glib-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/lib/arm-linux-gnueabihf/glib-2.0/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/gdk-pixbuf-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/gtk-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/lib/arm-linux-gnueabihf/gtk-2.0/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/cairo
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/pango-1.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/atk-1.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/local/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/eigen3
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/flann
-I/home/sagar/workspace/project/include -std=c++0x -Wall -Werror -Wno-deprecated -fPIC -g -O4
-o CMakeFiles/projectCore.dir/src/project/Core/Memory/Array2D.C.o -c /home/sagar/workspace/project/src/project/Core/Memory/Array2D.C