More about VC Express compiler

Hi there.

Yep, I’m having some issues about nvcc/express/x64 too :">

Is perfectly possible compile x64 projects on VC Express 2008 (and 2005), but not out of the box.

So lets to environment:

I’m giving a try on Windows 7 RC1 64bit
Microsoft Visual C++ 2008 Express SP1 (Win32 out-of-box)
Microsoft Windows 7 and Microsoft .Net 3.5 SP1 SDK (RC1 like the O.S.) (instaled only headers, lib and compiler [x86, x64 and ia64], is about 460MB download)

Follow the Jen’s Blog for how to add x64 from WinSDK to VCExpress: http://jenshuebel.wordpress.com/2009/02/12…64-bit-targets/

In the comments from people have a zip with a batch file that do the work for you :thumbup:

I noticed the C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat need to be fixed because the specific vcvarsXXX.bat files are all on .\bin of the same path not on sub folders of each architecture.

Now you VCExpress is able to compile for x64, the Project Manager option now show x64 and Itanium configs.

====

The NVCC

Installing the 32bit versions of CUDA toolkit and SDK you are able to compile for 32bit targets inside the 64bit OS.

Installing the 64bit versions of CUDA toolkit and SDK give to you the annoying Visual Compiler … ‘null’ etc etc

This behavior is because Visual Studio (at last express) is always executed in 32bit mode (you will see projects call cl.exe from x86_amd64 folder) and call the cross compiler for produce objects to x64 target. In this mode the VCExpress use the vcvars in x86_amd64 and the nvcc try find the pure 64bit version of cl.exe, what obviusly is not found.

====

Yes, I know I not post any solution for who want a decent ‘free’ IDE for use with 64bit of CUDA tolkit, but I think let this thread open for any post a solution or give an idea of what is the problem with VCExpress.

If CUDA Compilation Terget on Visual Studio plugin can launch nvcc in another clean cmd process, they can call the correct vcvarsXXX batch file, perphaps mitigating the problem of develop 64bit targets.