classification
Title: pyconfig.h not compatible with MS VC++ Express Edition
Type: compile error
Components: Build Versions: Python 2.5
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: amaury.forgeotdarc, fdrake, johanneshoff, loewis, weegreenblobbie
Priority: Keywords:

Created on 2007-10-18 17:06 by weegreenblobbie, last changed 2008-04-10 13:37 by fdrake.

Messages
msg56531 (view) Author: Nick (weegreenblobbie) Date: 2007-10-18 17:06
pyconfig.h checks for _MSC_VER and based on its value decides to include
<basetsd.h>.

MS VC++ Express reports _MSC_VER to be 1400 but does _NOT_ have the file
basetsd.h.

So when including Python.h with the Microsoft VC Express compiler,
pyconfig.h will try to include the non existing basetsd.h and compiling
fails.
msg56540 (view) Author: Martin v. Löwis (loewis) Date: 2007-10-18 19:46
What version of VC++ Express are you specifically referring to?
msg56554 (view) Author: Nick (weegreenblobbie) Date: 2007-10-19 14:52
MS VC++ 2005 Express Edition
msg56568 (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) Date: 2007-10-19 22:13
I found that BaseTsd.h is part of the Windows SDK, which is not included
in the Express Edition. It can be installed separately.

OTOH, the python core still compiles without the #include <basetsd.h>
(using VC++ 2005 Express Edition).
What about other compilers? What is this file needed for?
msg65049 (view) Author: Johannes Hoff (johanneshoff) Date: 2008-04-06 18:35
This is still the case with Visual Studio Express 2008. It can be fixed 
by downloading the Windows SDK, though it would be nicer if this was 
not necessary.
Download link: http://blogs.msdn.com/windowssdk/archive/2008/02/07/
windows-sdk-rtms.aspx
I recommend the "web install", since only the headers and libraries are 
needed, not the whole 1GB blob that comes with it.

Amaury: The file python.hpp, thus basetsd.h, is used by boost-python.
msg65259 (view) Author: Martin v. Löwis (loewis) Date: 2008-04-09 19:07
> Amaury: The file python.hpp, thus basetsd.h, is used by boost-python.

I don't think that was the question. Instead, the question was: why
is basetsd.h needed in the first place, when compiling Python?

Apparently, basetsd was added in r15912. Fred, can you remember what
the rationale was?
msg65292 (view) Author: Fred L. Drake, Jr. (fdrake) Date: 2008-04-10 13:37
On Apr 9, 2008, at 3:07 PM, Martin v. Löwis wrote:
> Fred, can you remember what the rationale was?

No; sorry.  I didn't even remember that I'd ever built Python on  
Windows.  Some things I've blocked out.
History
Date User Action Args
2008-04-10 13:37:23fdrakesetmessages: + msg65292
2008-04-09 19:07:56loewissetnosy: + fdrake
messages: + msg65259
2008-04-06 18:35:18johanneshoffsetnosy: + johanneshoff
messages: + msg65049
2008-01-12 03:12:35christian.heimessetstatus: open -> closed
resolution: out of date
2007-10-19 22:13:18amaury.forgeotdarcsetnosy: + amaury.forgeotdarc
messages: + msg56568
2007-10-19 14:52:09weegreenblobbiesetmessages: + msg56554
2007-10-18 19:46:37loewissetnosy: + loewis
messages: + msg56540
2007-10-18 17:06:17weegreenblobbiecreate