ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Main Area and Open Discussion > General Software Discussion

Visual C++ 2008 Express and native x64 output ?

(1/3) > >>

Defenestration:
I've recently been trying VC++ 2008 Express and am loving the new /MP option which spawns multiple processes to compile. It has cut my compilation times by two-thirds on a quad core :)

However, I want to use it to produce native 32-bit and 64-bit apps. From what I've read you supposedly have to install the Windows SDK, but after doing this I still can't get it to target x64.

Does anyone know if this is possible with VC++ 2008 Express and, if so, are there any step-by-step instructions on how to set it up (including URL's of the files/SDK's that need downloading) ?

PS. I'm developing on XP Pro x64 SP2.

f0dder:
Hmmmm, /MP? I see that it's for cl.exe, how does it work? If you specify only a single .c or .cpp file on the commandline, can it still effectively use multiple processes (I bet not)? I've been using multi-instance compiling with SCons build scripts, and supposedly VS2005 supports it in the IDE (I never got it to kick in though, it always only shows 1> in the output log, never 2>). Interesting to see it in the compiler, though.

Interestingly I don't see an option for compiling to 64bit code on the compiler, I would have expected it there, neither for vs2008 express nor vs2005 full. I googled a bit, and came across this, which says x64 tools aren't installed by default... so it would seem there are separate compiler binaries for 32- and 64-bit. I followed the instructions there to make an x64 build of fSekrit (which doesn't succeed atm :)), and with Process Explorer I could see that indeed it uses a different compiler,C:\vs\VC\bin\x86_amd64\cl.exe.

The VS2008 Express edition does not seem to include a path like that, the entire install only has three files with "64" in the file name, and indeed no compiler. And iirc the installer didn't offer a custom option?

But on the download page, it says that you can create x64 native apps, HMMM!

Anyway, iirc you get the x64 compiler with the PlatformSDK, or perhaps it's the DDK, but I dunno if it's as fully featured as the compiler from VS Pro.

EDIT: seems like MS decided to rename "GWL_WNDPROC" to "GWLP_WNDPROC", but keep the GWL_ version when you're compiling for 32-mode, but drop it when compiling for x64. Fixed that, and fSekrit builds okay for x64. And heck, it even (seems to ;P) work, bloats exe size by 40k though.

mwb1100:
I'm not sure, but I don't think VC++ Express supports x64 targets.  For VS 2008 Standard and above, x64 targets are supported, but you have to do a custom install and manually select the option.  I don't see that the Express install lets you do that.  The readme mentions that "x64 (WOW)" is supported, but I think that simply means that the product will work on an x64 platform.  There's nothing that I saw in the readme about what targets are supported.

mwb1100:
Hmm...  this page (which is for VC++ 2005 so it may not apply to 2008) says that you can enable x64 targets in Express by installing the .NET Framework SDK:

http://msdn2.microsoft.com/en-us/library/9yb4317s(VS.80).aspx

f0dder:
The overview page specifically says "Create native Win32 and Win64 applications", and I'm attaching a screenshot of it in case Microsoft decides to fix that page :)

Visual C++ 2008 Express and native x64 output ?

...I wonder if the dotNET framework SDK gives you the "full" compiler (ie, no handicapping of the optimizer and things like that), the 64bit libraries, and whether it's just for dotNET apps or can do native as well?

Navigation

[0] Message Index

[#] Next page

Go to full version