undefined reference

vic-lu wrote on Wednesday, November 20, 2013:

I’m new with FreeRTOS, I use the xTaskCreate() but I got the error as below

undefined reference to `xTaskGenericCreate’

I have included “FreeRTOS.h” and “task.h” sequentially.
And I even included the path of “task.h” and “mpu_wrappers.h”,but I still got the same error!
Is there any environment parameter that I forgot to set??

rtel wrote on Wednesday, November 20, 2013:

xTaskCreate()/xTaskGenericCreate() are base functions that are always included no matter what the configuration of the system - so the only thing that comes to mind is that you are not building the source file that contains the function’s definition. Are you building FreeRTOS/Source/tasks.c?

In any case, FreeRTOS comes with example pre-configured projects for every official port specifically so people don’t have to work out how to build themselves, but can instead start with something that is already building, then modify that for their own purposes. Obviously we can’t cover every possible combination of everything, but imagine you will be able to find a pre-configured project that is at least close to what you need.

Did you read the quick start guide?


richard_damon wrote on Wednesday, November 20, 2013:

The other thing that can cause this is if you compile task.c as a cpp file, since task.h will then declare it extern “C”, but task.c won’t, the names won’t match to the linker.

vic-lu wrote on Thursday, November 21, 2013:

Thanks for your reply.

I didn’t use the per-configured projects, I tries to include the FreeRTOS header to my new project. Dose FreeRTOS provide static library?? Do I need to rebuild hole FreeRTOS again?