Some errors when implementing the model in different modes

Question/Issue:
I have implemented models in different ways but at this last attempt I am trying to obtain a more clean code (as much as possible with my limited knowledge), but when compiling I got a lot of errors on the edge-impulse-sdk when the program was separated in a .c file and a .h file, but none when all my code is in a single .h file and I have no idea why is it happening so I’d like to know how can it be fixed.

I have uploaded the two different implementations to github so you can see my code in both cases.
github repository
Thanks
Project ID:

Context/Use case:

Hi @JosuGaztelu,

Can you provide more context around what you are trying to do and what error messages you are seeing?

I highly recommend starting with this example: GitHub - edgeimpulse/example-standalone-inferencing-silabs. It uses the Gecko SDK to perform a simple standalone inference. Extract your project’s C++ .zip SDK into the ei-model/ directory and copy in static raw features (e.g. from one of your test samples) into the features[] array in src/app.cpp. From there, follow the steps in the README to build/flash the program. Please let us know if you see any errors from this procedure to test static inference.

Hi Shawn,
I have implemented a couple of models already and I had overcome errors that had appeared in those cases because they were due to my unknowledge in the embedded world.

However, by looking at the files were the errors are appearing, I think the issue could be because somehow in this specific case, the defines of model_metadata.h file are not correctly read in other files as you can see in the following images:

model_metadata.h
image

onnx_tidl.h
image

tflite_micro.h
image

Thanks for your answer
Josu