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?
EDIT:
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?
EDIT 2:
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?