Problemas sobre TensorFlow Lite encontrados al compilar ARMNN en ubuntu14.06

Al compilar TensorFlow Lite, solo necesitamos realizar una compilación cruzada de la biblioteca estática libflatbuffers. A. Las siguientes sugerencias pueden ignorarse y no afectarán la compilación de ARMNN

 Generating samples/monster_generated.h
./flatc: 1: ./flatc: Syntax error: word unexpected (expecting ")")
make[2]: *** [samples/monster_generated.h] 错误 2
make[1]: *** [CMakeFiles/flatsamplebinary.dir/all] 错误 2

Descarga TensorFlow Lite

git clone https://github.com/google/flatbuffers.git
cd flatbuffers

Configure CMAKE según su propia situación al compilar TensorFlow Lite

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release

O escribe la ruta completa de la compilación

CC=/home/tronlong/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/home/tronlong/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release

En este momento, si lo hace directamente, aparecerá el error de recompilar con -fPIC al compilar armnn

[ 67%] Linking CXX shared library ../../libarmnnTfLiteParser.so
/home/tronlong/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.3.1/../../../../arm-linux-gnueabihf/bin/ld: /home/armnn/flatbuffers/libflatbuffers.a(util.cpp.o): relocation R_ARM_THM_MOVW_ABS_NC against `_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE' can not be used when making a shared object; recompile with -fPIC
/home/armnn/flatbuffers/libflatbuffers.a: error adding symbols: 错误的值
collect2: error: ld returned 1 exit status
make[2]: *** [libarmnnTfLiteParser.so] 错误 1
make[1]: *** [src/armnnTfLiteParser/CMakeFiles/armnnTfLiteParser.dir/all] 错误 2
make: *** [all] 错误 2

Necesita agregar una oración a CMakeLists.txt en el directorio flatbuffers, para que no necesite especificar una ruta específica cuando use la biblioteca libflatbuffers.a

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC ")

O agregue las siguientes opciones

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -Wall  -Wno-unused-variable -Wold-style-cast -Wno-missing-braces -pthread")

Después de eso, puede compilar libflatbuffers.a
y compilar armnn de nuevo, y pasará sin problemas. Para todo el entorno, consulte el tutorial del sitio web oficial
o mi tutorial
. Por favor, corríjame si hay errores. Bienvenidos a todos

Supongo que te gusta

Origin blog.csdn.net/coinv2014/article/details/102656847
Recomendado
Clasificación