PDA

View Full Version : Does Make VS 2005 action support x64?


jannlin
02-27-2008, 01:47 PM
My problem is similar to the thread titled x64 borken?

I am trying to build both x64 and x86 on a machine with AMD64 processor. I saw a warning message when "Make VS 2005" action is executed indicating that VCBUILD.exe is called instead of MSBUILD.exe. This is okay because we are building VC++ projects. On a 32 bit machine, the VCBUILD.EXE at c:\Program Files\Microsoft Visual Studio 8\vc\vcpackages is called. This is fine. But on the AMD64 machine, the 32 bit version of VCBUILD.EXE instead of 64 bit of VCBUILD.EXE is called.

The 32 bit VCBUILD.EXE is in c:\Program Files (x86)\Microsoft Visual Studio 8\vc\vcpackages, while the 64 bit version of VCBUILD.EXE are located in c:\Program Files\Microsoft Visual Studio 8\vc\vcpaclages and c:\Program Files (x86)\Microsoft Visual Studio 8\vc\bin\amd64 dir. Even though the wrong version of VCBUILD.EXE is called but the build seemed finished okay and .dll and .exe were generated. My question is how do we select which VCBUILD.EXE to be run.

Yes, I have used the options tab to override which version of VCBUILD.EXE to run. But when I specified the 64 bit version of VCBUILD.EXE, it ran into a bag of worms like we need to ryn the vcvarsamd64.bat to set up the environament vars etc.. But I could not get it work. Any help is appreciated.

kinook
02-27-2008, 03:33 PM
If you're not overriding the defaults (Override field on Options tab is blank), the action will invoke MSBuild to build the solution, and it's MSBuild that decides which VCBuild to invoke.

One possible workaround is to change the override field to 'devenv'. This will be closer (although still not necessarily identical) to building from the IDE.

If that doesn't help, please ZIP and send or post:
1) The info from Help | About | Install Info
2) The .bld file
3) A build log file
4) The .sln file and project files (no source code files)

Thanks.

jannlin
02-27-2008, 04:48 PM
Thanks for your quick response. So the problem is internal in MSBUILD.exe or in our "Make VS xxx" action? I have tried to use devenv instead of MSBUILD and it worked fine for some projects but not all. When it failed, it just said return code is 1 and quitted. It is hard to figure out what was the problem. Actually we do not use any of the solution files. We use VBP to build .dll and .exe with project files only.

We have manually adding or deleting configuration section like Debug|win32, Release|x64 etc.. Is that okay? Thanks.

kinook
02-27-2008, 05:04 PM
Yes, it sounds like an issue with Visual Studio (msbuild and/or devenv) when building from the command line, which isn't always identical to building in the IDE (another possibility is some sort of problem with the project file if you manually edited it). You can verify that it's not a VBP issue by checking the 'Display command-line...' checkbox on the Options tab of the Make VS.NET action, rebuilding the step, then copying and pasting the msbuild/devenv command-line from the build output to a batch file like this:

<msbuild/devenv command here>
echo exit code = %ERRORLEVEL%

and then running the batch file from a Command Prompt. If the problem (errors/warnings or non-zero exit code) occurs outside of VBP, you'll need to open a support incident with MS to investigate the problem.

jannlin
02-28-2008, 08:37 AM
I tried as what you recommended at command promt and got the same error. With that, I have two questions and appreciate if you can help.

1. What is the .exe file generated by 32 bit version of VCBUILD.EXE in c:\Program Files (x86)\... dir and "Debug|x64" in the project file? Is it for 32 bit or for 64 bit? I would hope it is for 64 bit or I expect I should get some error message back when building.

2. There is only one devenv at c:\Program Files (x86)\... directory. So that is for both 32 and 64 bits? Some how this is not consistent with other MS commands. For the commands that works for both 32 and 64 bits are usually stored in c:\Program Files\... directories.

Thanks.

kinook
02-28-2008, 10:56 AM
Originally posted by jannlin
I tried as what you recommended at command promt and got the same error. With that, I have two questions and appreciate if you can help.

1. What is the .exe file generated by 32 bit version of VCBUILD.EXE in c:\Program Files (x86)\... dir and "Debug|x64" in the project file? Is it for 32 bit or for 64 bit? I would hope it is for 64 bit or I expect I should get some error message back when building.I don't know. It probably depends on whether it invokes the 64-bit compiler/linker.

2. There is only one devenv at c:\Program Files (x86)\... directory. So that is for both 32 and 64 bits? Some how this is not consistent with other MS commands. For the commands that works for both 32 and 64 bits are usually stored in c:\Program Files\... directories.

Thanks. AFAIK, there is no 64-bit devenv.exe.