ArduCAM / RPI-Pico-Cam

126 stars 43 forks source link

Build failed with "duplicate 'inline'" error #10

Open thsvkd opened 2 years ago

thsvkd commented 2 years ago

It was built by Raspberry Pi4 and built with the most recent pico SDK based on the time of posting. I just followed all of the instructions in the document and the compilation did not proceed due to the following errors.

[  7%] Building CXX object CMakeFiles/pico-tflmicro.dir/src/tensorflow/lite/micro/recording_simple_memory_allocator.cpp.obj
[  7%] Building CXX object CMakeFiles/pico-tflmicro.dir/src/tensorflow/lite/micro/rp2/debug_log.cpp.obj
In file included from /usr/include/newlib/stdio.h:35:0,
                 from /home/pi/Workspace/RPI-Pico-Cam/tflmicro/src/tensorflow/lite/micro/rp2/debug_log.cpp:40:
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:282:1: note: in expansion of macro '__force_inline'
 __force_inline static void __compiler_memory_barrier(void) {
 ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:347:8: note: in expansion of macro '__force_inline'
 static __force_inline void tight_loop_contents(void) {}
        ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:359:1: note: in expansion of macro '__force_inline'
 __force_inline static int32_t __mul_instruction(int32_t a, int32_t b) {
 ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:93:8: note: in expansion of macro '__force_inline'
 static __force_inline uint32_t xip_alias_check_addr(const void *addr) {
        ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:121:1: note: in expansion of macro '__force_inline'
 __force_inline static void hw_set_bits(io_rw_32 *addr, uint32_t mask) {
 ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:131:1: note: in expansion of macro '__force_inline'
 __force_inline static void hw_clear_bits(io_rw_32 *addr, uint32_t mask) {
 ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:141:1: note: in expansion of macro '__force_inline'
 __force_inline static void hw_xor_bits(io_rw_32 *addr, uint32_t mask) {
 ^~~~~~~~~~~~~~
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h:237:31: error: duplicate 'inline'
 #define __force_inline inline __always_inline
                               ^
/home/pi/Workspace/pico/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:157:1: note: in expansion of macro '__force_inline'
 __force_inline static void hw_write_masked(io_rw_32 *addr, uint32_t values, uint32_t write_mask) {
 ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/pico-tflmicro.dir/build.make:869: CMakeFiles/pico-tflmicro.dir/src/tensorflow/lite/micro/rp2/debug_log.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:1696: CMakeFiles/pico-tflmicro.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

what is problem?

Hermann-SW commented 2 years ago

There is an issue in pico-sdk repo on this. I found simple workaround: https://github.com/raspberrypi/pico-sdk/issues/659#issuecomment-977941762