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 ?

<< < (2/3) > >>

Defenestration:
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

-mwb1100 (November 21, 2007, 05:08 PM)
--- End quote ---
I also read that page, and have read another which says you need to install Windows SDK. However, I have tried both methods and still had no luck producing a nativwe x64 app.

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.-f0dder (November 21, 2007, 04:48 PM)
--- End quote ---
I don't use the command-line, but the /MP switch will spawn separate compiler processes for different source files (eg. if your project consists of source1.cpp and source2.cpp, then VS2008 can compile them simultaneously. However, if your project only consists of a single source file, then the /MP switch will not have any effect). I have a quad core, and the /MP switch results in five compiler processes being spawned (ie. number of cores + 1). You can also specify exactly how many processes should be spawned by using /MP[number of processes - 1].

VS2005 supported building multiple projects simultaneously, but not multiple source files within a single project.

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.[/b]-f0dder (November 21, 2007, 04:48 PM)
--- End quote ---
I have successfully managed to compile a native x64 app with VC++ 2005 Standard (I did a full install of VS2005 + SP1 + Intellisense hotfix), although this doesn't work with all my apps. To do this, do the following:

1) Load the project
2) Go to Build...->Configuration Manager
3) Select "New..." from the Active Solution platform drop-down
4) If all is well, "x64" should be selected in the "Type or select the new platform" combo.
5) Compile with the target set to x64.

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.-f0dder (November 21, 2007, 04:48 PM)
--- End quote ---
The compilers in the Express editions are supposed to be the same. The only difference being added tools like resource editor, unit test, more options can be specified through prefs dialog etc. I'm wondering whether the 64-bit compilers in Windows Server 2008 Platform SDK also support the /MP switch though.

Fixed that, and fSekrit builds okay for x64. And heck, it even (seems to ;P) work, bloats exe size by 40k though.-f0dder (November 21, 2007, 04:48 PM)
--- End quote ---
People running an x64 OS aren't bothered by the slight bloat if it means they get to run a native x64 app ;)  ;D

f0dder:
I figured out how to add x64 config myself, but thanks for posting it here anyway - somebody else might read & benefit (it's mentioned on the MS page I posted a link to). 40kb is a lot of bloat for fSekrit, and it doesn't really benefit from x64 version, but it was what I was working on so it was what I tried building for x64. Almost surprised it worked with no changes... dunno if there's any x64-related bugs in it, though :P

Wrt. supporting /MP switch, I doubt that should be necessary, unless the way the IDE works has been changed; in 2005 it doesn't invoke cl.exe with a long list of files, it invokes it once per file... so if the 2008 IDE hasn't changed, it will not use /MP but manually spawn threads.

Carol Haynes:
Out of curiosity what happens if you install Express on a 64-bit platform? Does it still compile to 32-bit or does it work out that you are using 64-bit and default to that?

Defenestration:
Out of curiosity what happens if you install Express on a 64-bit platform? Does it still compile to 32-bit or does it work out that you are using 64-bit and default to that?
-Carol Haynes (November 21, 2007, 06:45 PM)
--- End quote ---
I installed to XP Pro x64 SP2 and it defaults to Win32.

Carol Haynes:
Thought it might - now there's logic for you ;)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version