From: Max B. <ma...@uk...> - 2003-04-24 20:47:38
|
> Michael Bester wrote: >> Hi, >> I can't compile vide with mingw g++ 3.2.2 compiler. >> I did compile the V source . >> I don't know where the following error comes from: >> >> g++ -c -Id:/Projects/home/vgui/includew -O2 >> -Id:/Projects/home/vgui/vide -o d:/Projects/home/vgui/obj/videapp.o >> videapp.cpp >> In file included from h:/MinGW/include/c++/3.2.2/istream:45, >> from h:/MinGW/include/c++/3.2.2/fstream:45, >> from videjava.h:26, >> from videcmdw.h:38, >> from videapp.h:28, >> from videapp.cpp:21: >> h:/MinGW/include/c++/3.2.2/limits:942:22: macro "min" requires 2 >> arguments, but only 1 given >> In file included from h:/MinGW/include/c++/3.2.2/istream:45, >> from h:/MinGW/include/c++/3.2.2/fstream:45, >> from videjava.h:26, >> from videcmdw.h:38, >> from videapp.h:28, >> from videapp.cpp:21: >> h:/MinGW/include/c++/3.2.2/limits:942: parse error before `throw' >> h:/MinGW/include/c++/3.2.2/limits:943:22: macro "max" requires 2 >> arguments, but only 1 given >> h:/MinGW/include/c++/3.2.2/limits:943: ISO C++ forbids defining types >> within >> return type >> h:/MinGW/include/c++/3.2.2/limits:943: syntax error before `throw' >> h:/MinGW/include/c++/3.2.2/limits:943: syntax error before `throw' >> h:/MinGW/include/c++/3.2.2/limits:944: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:945: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:946: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:947: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:948: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:949: syntax error before `(' token >> h:/MinGW/include/c++/3.2.2/limits:956: `numeric_limits' is not a template >> h:/MinGW/include/c++/3.2.2/limits:957: confused by earlier errors, >> bailing out >> make: *** [d:/Projects/home/vgui/obj/videapp.o] Error 1 >> >> Mabe someone knows what causes these errors? These errors look familiar. Looks like min/max macros are getting defined (probably from windows.h), and then an STL header is being included. Certain STL headers seem to break like this when this happens. The solution is simple - #defined NOMINMAX before including windows.h, or only include windows.h after including all STL headers. Max. |