I use ARM Development Studio and use it's ARM C compiler for Embedded 6.
When I include "arm_neon.h" and using
armclang.exe --target=arm-arm-none-eabi -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -marm -fvectorize -O0 -g -MD -MP -c -o "src/sfp_interest_point.o" "../src/sfp_interest_point.c"../src\arm_neon.h:57:9: error: unknown type name '__simd64_int8_t'
../src\arm_neon.h:58:9: error: unknown type name '__simd64_int16_t'
../src\arm_neon.h:59:9: error: .........
According to some information, I have set the mfpu=neon-vfpv4, -mfloat-abi=hard, but the error still there.
Could some people know why I will have error?
Regards
Gilbert
ok, I have found the problem.
The problem is #include "arm_neon.h" this file is I copied form arm_non_eabi_gcc compile,
When I use armclang.exe compilerI need #include <arm_neon.h>
some internal definitions are different between these 2 arm_neon.h.
#include <arm_neon.h>
it will use arm_neon.h belong armclang.exe compiler
You can find out the file under the Arm Development Studio installation path
Hi GIlbert, that makes sense! Thanks for posting your solution back here.Indeed, the header file arm_neon.h has the same name in GCC and Armclang: this is for your user code to be portable between compilers, BUT that header file is part of the toolchain and you must not copy it out and use it with a different toolchain. You must always use the header file that is packaged with the toolchain you are using. This is true for GCC vs Armclang, but also between different versions of the same toolchain, e.g. a heder file from GCC12 might not work with GCC13.