The problem is, that 2018.3 is distributed with an old version of freeRTOS
copy the entire directory
C:\Xilinx\SDK\2018.3\data\embeddedsw\ThirdParty\bsp\freertos10_xilinx_v1_2
to become
C:\Xilinx\SDK\2018.3\data\embeddedsw\ThirdParty\bsp\freertos10_xilinx_v1_2 - Copy
download the latest freeRTOS 10.1.2 from the freeRTOS web-site
copy all the files into the appropriate place, overwrite old files if needed
Furthermore edit
C:\Xilinx\SDK\2018.3\data\embeddedsw\ThirdParty\bsp\freertos10_xilinx_v1_2\data\freertos10_xilinx.tcl
insert after line 287
file copy -force [file join src Source croutine.c] ./src
file copy -force [file join src Source stream_buffer.c] ./src
insert after line 466
puts $config_file "#define configSUPPORT_DYNAMIC_ALLOCATION 1"
I have not tested it yet, but you have a backup...
What happened?
in the 2013.3 distribution, the stream_buffer.h file has a bug. It will not work if you call these function from C++.
Also the BSP in the Project Explorer is simply missing the references
to croutine.c and stream_buffer.c