I want to add a bit of an explanation to what @hs2 and @urutva have already mentioned - which is the cause of your problem.
The -I option is for including directories of header files (doc). This option does not include source code .c files into your project. While this error message is specifically telling you that the code isn’t defined, it isn’t warning you that the function is undeclared. An undeclared warning would suggest that the function declaration - present in a header file - is missing. In your case, you’re including the headers, so it’s not missing. Undefined errors suggest that the implementation (or definition) of the function is missing. This definition will be present in the source file.
The Makefile mentioned above includes the source files when compiling by compiling all of the source files into the executable/binary/image at once. Line 105-106 expands to compile all of the OBJ_FILES. The SOURCE_FILES are added to the OBJ_FILES on line 98.
I hope you find this helpful. Feel free to reach back out if you continue to have issues with your FreeRTOS project