MinGWにおけるWINVER

MinGWを使ってプログラムを構築中に、getaddrinfo()が見つからないというエラーにでくわした。なんやかんやで色々調べた結果、windef.hに定義されているWINVERマクロの数値が0x400になっているのが原因である事が判明。ちなみにOSはWindowsXP SP3。0x400なわけあるかい!!


と、イラっとしたので、MinGWのwindef.hに定義されているWINVERマクロを0x501に書きかえてやった(getaddrinfo()は_WIN32_WINNT >= 0x501の時に使用可能。_WIN32_WINNT は WINVERと同値)!!


で、後から冷静に考えて、gccのオプションで "-DWINVER=0x501"加えてmakeすればいい事に気付いた。ので、windef.hは元に戻してmakefileを書き換えて対応。