ARM NEON编译错误(arma7 aarch64)有如下解决方案供参考

在aarch64的ARM处理器上编译NEON程序

在 cortexa7的ARM处理器上编译NEON程序

/toolchain-sunxi-musl/toolchain/lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/include/arm_neon.h: In function '_simd_f32x4 _simd_f32x4_load(const _simd_f32*)':
/toolchain-sunxi-musl/toolchain/lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline 'float32x4_t vld1q_f32(const float32_t*)': target specific option mismatch
vld1q_f32 (const float32_t * __a)
^~~~~~~~~
In file included from /home/book/pro/15_SeetaFace/SeetaFace6/TenniS/include/kernels/common/simd.h:15:0,
from /home/book/pro/15_SeetaFace/SeetaFace6/TenniS/src/kernels/cpu/arm/conv2d_3x3.cpp:7:
/home/book/pro/15_SeetaFace/SeetaFace6/TenniS/include/kernels/common/simd_def/simd_neon_def.h:78:23: note: called from here
return vld1q_f32(p);

 

解决办法是加入下编译选项:-march=armv8-a -marm -mfpu=neon

arm-linux-gnueabihf-gcc -march=armv8-a -marm -mfpu=neon convolution_neon_int32.c -o convolution_neon_int32

arm-linux-gnueabihf-g++ -O3 -march=armv7-a -mcpu=cortex-a9 -ftree-vectorize -mfpu=neon -mfpu=vfpv3-fp16 -mfloat-abi=hard -ffast-math 

 

针对cmake在 cmakelist.txt 文件中

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-a7 -ftree-vectorize -mfpu=neon -mfloat-abi=hard -ffast-math")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=cortex-a7 -ftree-vectorize -mfpu=neon -mfloat-abi=hard -ffast-math")

 

 

其他参考

set(CMAKE_SYSTEM_NAME Linux)
set(TOOLCHAIN_PATH "/toolchain-sunxi-musl/toolchain/bin/")
set (CMAKE_C_COMPILER "/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-muslgnueabi-gcc")
set (CMAKE_CXX_COMPILER "/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-muslgnueabi-g++")
# float-abi=hard
# set(CMAKE_C_FLAGS float-abi=hard)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-a7 -ftree-vectorize -mfpu=neon -mfloat-abi=hard -ffast-math")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=cortex-a7 -ftree-vectorize -mfpu=neon -mfloat-abi=hard -ffast-math")

 

 

 

//

posted @ 2024-06-03 16:31  小城熊儿  阅读(11)  评论(0编辑  收藏  举报