_Null_terminated_ does not have a type error

I got this error when trying to compile and build the BasicApp example. I was following this tutorial on how to use CMake from the terminal to compile projects. I am using Windows 10.

C:\msys64\mingw32\bin\g++.exe  -DFT2_BUILD_LIBRARY -DFT_DEBUG_LEVEL_TRACE -DNOMINMAX -DUNICODE -D_CRT_SECURE_NO_WARNINGS -D_LIB -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_WIN32_WINNT=0x0601 @CMakeFiles/BasicApp.dir/includes_CXX.rsp -g   -std=c++17 -o CMakeFiles\BasicApp.dir\C_\Developer\Cinder\samples\BasicApp\src\BasicApp.cpp.obj -c C:\Developer\Cinder\samples\BasicApp\src\BasicApp.cpp
In file included from C:/Developer/Cinder/include/cinder/Display.h:30,
                 from C:/Developer/Cinder/include/cinder/app/Renderer.h:37,
                 from C:/Developer/Cinder/include/cinder/app/AppBase.h:29,
                 from C:/Developer/Cinder/include/cinder/app/msw/AppMsw.h:26,
                 from C:/Developer/Cinder/include/cinder/app/App.h:41,
                 from C:\Developer\Cinder\samples\BasicApp\src\BasicApp.cpp:1:
C:/Developer/Cinder/include/cinder/msw/CinderWindowsFwd.h:64:9: error: '_Null_terminated_' does not name a type
   64 | typedef _Null_terminated_ CHAR *NPSTR, *LPSTR, *PSTR;
      |         ^~~~~~~~~~~~~~~~~
In file included from C:/Developer/Cinder/include/cinder/app/App.h:41,
                 from C:\Developer\Cinder\samples\BasicApp\src\BasicApp.cpp:1:
C:\Developer\Cinder\samples\BasicApp\src\BasicApp.cpp:80:1: error: 'LPSTR' has not been declared
   80 | CINDER_APP( BasicApp, RendererGl, prepareSettings )
      | ^~~~~~~~~~
make[2]: *** [CMakeFiles/BasicApp.dir/C_/Developer/Cinder/samples/BasicApp/src/BasicApp.cpp.obj] Error 1

Any suggestions?

I decided to rebuild Cinder with MinGW following the tutorial a bit earlier.
cmake -G "MinGW Makefiles" .. this command completed successfully, and then I ran
make -j4
…and I got the same error I posted above. What’s going on?

I re-downloaded the latest repo from GitHub and extracted it… I re-compiled with MinGW, this time with x32 and x64 in different folders, and ran make -j4 and I still got this error:

C:\Developer\Cinder\build_x64>make -j4
Scanning dependencies of target cinder
[  0%] Building CXX object CMakeFiles/cinder.dir/src/cinder/Area.cpp.obj
[  0%] Building CXX object CMakeFiles/cinder.dir/src/cinder/BandedMatrix.cpp.obj
[  1%] Building CXX object CMakeFiles/cinder.dir/src/cinder/Base64.cpp.obj
[  1%] Building CXX object CMakeFiles/cinder.dir/src/cinder/BSpline.cpp.obj
[  1%] Building CXX object CMakeFiles/cinder.dir/src/cinder/BSplineFit.cpp.obj
[  2%] Building CXX object CMakeFiles/cinder.dir/src/cinder/Buffer.cpp.obj
[  2%] Building CXX object CMakeFiles/cinder.dir/src/cinder/Camera.cpp.obj
[  3%] Building CXX object CMakeFiles/cinder.dir/src/cinder/CameraUi.cpp.obj
In file included from C:/Developer/Cinder/include/cinder/Display.h:30,
                 from C:/Developer/Cinder/include/cinder/app/Window.h:28,
                 from C:/Developer/Cinder/include/cinder/CameraUi.h:28,
                 from C:\Developer\Cinder\src\cinder\CameraUi.cpp:26:
C:/Developer/Cinder/include/cinder/msw/CinderWindowsFwd.h:64:9: error: '_Null_terminated_' does not name a type
   64 | typedef _Null_terminated_ CHAR *NPSTR, *LPSTR, *PSTR;
      |         ^~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/cinder.dir/src/cinder/CameraUi.cpp.obj] Error 1
make[1]: *** [CMakeFiles/cinder.dir/all] Error 2
make: *** [all] Error 2

I would much like to be able to use CMake in the future, but these errors are getting in my way. Any suggestions?

I don’t think you can build cinder in mingw.
Just started a cross platform project and I generate my VS2019 on windows with cmake and build with VS.