Closed superdu12138 closed 3 years ago
您好.
初步判断您应该是没有正确配置交叉编译环境. 麻烦确认一下在cmake执行过程中是否选择了正确的编译器.
如若您的开发机是x86环境,那么打印出下面的信息,则意味着交叉编译工具链没有正确配置.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
我们会尽快在文档中补充交叉编译相关的信息.
Since you haven\'t replied for more than 3 months, we have closed this issue/pr. If the problem is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up. It is recommended to pull and try the latest code first. 由于您超过三个月未回复,我们将关闭这个issue/pr。 若问题未解决或有后续问题,请随时重新打开(建议先拉取最新代码进行尝试),我们会继续跟进。
1208
我也遇到了这个问题,但是增加头文件之后,出现了新的错误,似乎是CPU架构不对,我是在树莓派4B上编译的
测试代码是 PaddleOCR v2.9 + Paddle-Lite v2.10
#include <arm_neon.h>
错误:
[ 83%] Building CXX object CMakeFiles/ocr_db_crnn.dir/ocr_db_crnn.cc.o
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h: In function ‘void NeonMeanScale(const float*, float*, int, std::vector<float>, std::vector<float>)’:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:39:36: note: called from here
float32x4_t vscale2 = vdupq_n_f32(scale[2]);
~~~~~~~~~~~^~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:38:36: note: called from here
float32x4_t vscale1 = vdupq_n_f32(scale[1]);
~~~~~~~~~~~^~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:37:36: note: called from here
float32x4_t vscale0 = vdupq_n_f32(scale[0]);
~~~~~~~~~~~^~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:36:35: note: called from here
float32x4_t vmean2 = vdupq_n_f32(mean[2]);
~~~~~~~~~~~^~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:35:35: note: called from here
float32x4_t vmean1 = vdupq_n_f32(mean[1]);
~~~~~~~~~~~^~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘float32x4_t vdupq_n_f32(float32_t)’: target specific option mismatch
vdupq_n_f32 (float32_t __a)
^~~~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:34:35: note: called from here
float32x4_t vmean0 = vdupq_n_f32(mean[0]);
~~~~~~~~~~~^~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:12212:1: error: inlining failed in call to always_inline ‘float32x4x3_t vld3q_f32(const float32_t*)’: target specific option mismatch
vld3q_f32 (const float32_t * __a)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:47:39: note: called from here
float32x4x3_t vin3 = vld3q_f32(din);
^
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1941:1: error: inlining failed in call to always_inline ‘float32x4_t vsubq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vsubq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:48:34: note: called from here
float32x4_t vsub0 = vsubq_f32(vin3.val[0], vmean0);
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1941:1: error: inlining failed in call to always_inline ‘float32x4_t vsubq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vsubq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:49:34: note: called from here
float32x4_t vsub1 = vsubq_f32(vin3.val[1], vmean1);
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1941:1: error: inlining failed in call to always_inline ‘float32x4_t vsubq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vsubq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:50:34: note: called from here
float32x4_t vsub2 = vsubq_f32(vin3.val[2], vmean2);
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1172:1: error: inlining failed in call to always_inline ‘float32x4_t vmulq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vmulq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:51:32: note: called from here
float32x4_t vs0 = vmulq_f32(vsub0, vscale0);
~~~~~~~~~^~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1172:1: error: inlining failed in call to always_inline ‘float32x4_t vmulq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vmulq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:52:32: note: called from here
float32x4_t vs1 = vmulq_f32(vsub1, vscale1);
~~~~~~~~~^~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:1172:1: error: inlining failed in call to always_inline ‘float32x4_t vmulq_f32(float32x4_t, float32x4_t)’: target specific option mismatch
vmulq_f32 (float32x4_t __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:53:32: note: called from here
float32x4_t vs2 = vmulq_f32(vsub2, vscale2);
~~~~~~~~~^~~~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10970:1: error: inlining failed in call to always_inline ‘void vst1q_f32(float32_t*, float32x4_t)’: target specific option mismatch
vst1q_f32 (float32_t * __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:54:14: note: called from here
vst1q_f32(dout_c0, vs0);
~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10970:1: error: inlining failed in call to always_inline ‘void vst1q_f32(float32_t*, float32x4_t)’: target specific option mismatch
vst1q_f32 (float32_t * __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:55:14: note: called from here
vst1q_f32(dout_c1, vs1);
~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:21:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10970:1: error: inlining failed in call to always_inline ‘void vst1q_f32(float32_t*, float32x4_t)’: target specific option mismatch
vst1q_f32 (float32_t * __a, float32x4_t __b)
^~~~~~~~~
/home/pi/paddle/Paddle-Lite-Demo-2.9/PaddleLite-armlinux-demo/ocr_db_crnn/ocr_db_crnn.cc:56:14: note: called from here
vst1q_f32(dout_c2, vs2);
~~~~~~~~~^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/ocr_db_crnn.dir/build.make:115: CMakeFiles/ocr_db_crnn.dir/ocr_db_crnn.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ocr_db_crnn.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
error: ‘float32x4_t’ was not declared in this scope
完整报错: [ 50%] Building CXX object CMakeFiles/ocr_db_crnn.dir/ocr_db_crnn.cc.o /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc: In function ‘void NeonMeanScale(const float, float, int, std::vector, std::vector)’:
/home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:33:3: error: ‘float32x4_t’ was not declared in this scope
float32x4_t vmean0 = vdupq_n_f32(mean[0]);
^
~~/home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:33:3: note: suggested alternative: ‘float_t’ float32x4_t vmean0 = vdupq_n_f32(mean[0]); ^~~float_t /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:34:15: error: expected ‘;’ before ‘vmean1’ float32x4_t vmean1 = vdupq_n_f32(mean[1]); ^~/home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:35:15: error: expected ‘;’ before ‘vmean2’ float32x4_t vmean2 = vdupq_n_f32(mean[2]); ^~/home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:36:15: error: expected ‘;’ before ‘vscale0’ float32x4_t vscale0 = vdupq_n_f32(scale[0]); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:37:15: error: expected ‘;’ before ‘vscale1’ float32x4_t vscale1 = vdupq_n_f32(scale[1]); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:38:15: error: expected ‘;’ before ‘vscale2’ float32x4_t vscale2 = vdupq_n_f32(scale[2]); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:46:5: error: ‘float32x4x3_t’ was not declared in this scope float32x4x3_t vin3 = vld3q_f32(din); ^~~~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:46:5: note: suggested alternative: ‘float_t’ float32x4x3_t vin3 = vld3q_f32(din); ^~~~~ float_t /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:47:17: error: expected ‘;’ before ‘vsub0’ float32x4_t vsub0 = vsubq_f32(vin3.val[0], vmean0); ^~~~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:48:17: error: expected ‘;’ before ‘vsub1’ float32x4_t vsub1 = vsubq_f32(vin3.val[1], vmean1); ^~~~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:49:17: error: expected ‘;’ before ‘vsub2’ float32x4_t vsub2 = vsubq_f32(vin3.val[2], vmean2); ^~~~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:50:17: error: expected ‘;’ before ‘vs0’ float32x4_t vs0 = vmulq_f32(vsub0, vscale0); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:51:17: error: expected ‘;’ before ‘vs1’ float32x4_t vs1 = vmulq_f32(vsub1, vscale1); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:52:17: error: expected ‘;’ before ‘vs2’ float32x4_t vs2 = vmulq_f32(vsub2, vscale2); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:53:24: error: ‘vs0’ was not declared in this scope vst1q_f32(dout_c0, vs0); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:53:5: error: ‘vst1q_f32’ was not declared in this scope vst1q_f32(dout_c0, vs0); ^~~~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:54:24: error: ‘vs1’ was not declared in this scope vst1q_f32(dout_c1, vs1); ^~~ /home/test/yunmai/dudu/Embed/Paddle-Lite_test/build.lite.linux.armv8.gcc/inference_lite_lib.armlinux.armv8/demo/cxx/ocr/ocr_db_crnn.cc:55:24: error: ‘vs2’ was not declared in this scope vst1q_f32(dout_c2, vs2); ^~~ CMakeFiles/ocr_db_crnn.dir/build.make:62: recipe for target 'CMakeFiles/ocr_db_crnn.dir/ocr_db_crnn.cc.o' failed make[2]: [CMakeFiles/ocr_db_crnn.dir/ocr_db_crnn.cc.o] Error 1 CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/ocr_db_crnn.dir/all' failed make[1]: [CMakeFiles/ocr_db_crnn.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2