Can g++ and minGW on Windows XP use the Windows SDK?
Specifically, why does g++ fail to compile:
#include <stdio.h>
#include <windows.h>
int main(void) {
printf("!!!Hello World!!!");
return EXIT_SUCCESS;
}
I have tried compiling by by running:
g++ -c -Wall Test.cpp -IC:/Program\ Files/Microsoft\ Platform\ SDK/Include/
I get a litany of compile errors beginning with
winnt.h:666:2: #error Must define a target architecture.
I have installed the Windows Server 2003 SP1 Platform SDK
Background
I am working on a large real-time image processing software project that up until now has used g++, minGW and gnu make files (written by hand). For a new feature, I need to interface with a frame grabber that has an SDK which was designed for Visual Studio. The framegrabber SDK depends on header files from the Windows SDK.
Do I need to learn Visual Studio or is there another way?
I use MinGW to compile Windows programs every day, with zero problems. There must be something wrong with your installation – try the version at Twilight Dragon Media.
Edit: Just re-read your post – you do not need to specify the include directory as you are doing, and probably should not do so. Also, you may (or may not) need the slightly mysterious -mwindows flag. I just compiled your program using MinGW (TDM build) g++ 4.4.1, with the command line:
with absolutely no problems.
More Info: Just so you know what the -mwindows flag does, the GCC docs say:
Personally, I’ve never found it necessary, but then my Windows apps are all command line tools or servers.