Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Visual Studio's 'cl' from a normal command line

Visual Studio 2003 and 2005 (and perhaps 2008 for all I know) require the command line user to run in the 'Visual Studio Command Prompt'. When starting this command prompt it sets various environment variables that the C++ compiler, cl, uses when compiling.

This is not always desirable. If, for example, I want to run 'cl' from within Ant, I'd like to avoid having to run Ant from within the 'Visual Studio Command Prompt'. Running vcvars32.bat isn't an option as the environment set by vcvars32.bat would be lost by the time cl was run (if running from within Ant).

Is there an easy way to run cl without having to run from within the Visual Studio command prompt?

like image 422
Tom Hennen Avatar asked Sep 17 '08 15:09

Tom Hennen


People also ask

How do I run Visual Studio from the command line?

Start in Visual StudioOn the menu bar, select Tools > Command Line > Developer Command Prompt or Developer PowerShell.

Why is Cl not working in command prompt?

If you see the error "The term 'cl.exe' is not recognized as the name of a cmdlet, function, script file, or operable program.", this usually means you are running VS Code outside of a Developer Command Prompt for Visual Studio and VS Code doesn't know the path to the cl.exe compiler.

What is CL in command line?

CL passes these options to the linker. You can specify any number of options, filenames, and library names, as long as the number of characters on the command line does not exceed 1024, the limit dictated by the operating system.

Does Visual Studio have a CLI?

Visual Studio Code has a powerful command-line interface built-in that lets you control how you launch the editor. You can open files, install extensions, change the display language, and output diagnostics through command-line options (switches).


1 Answers

The compilers can be used from command line (or makefiles) just like any other compilers. The main things you need to take care of are the INCLUDE and LIB environment variables, and PATH. If you're running from cmd.exe, you can just run this .bat to set the environment:

C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat

If you're trying to use the compilers from a makefile, Cygwin, MinGW, or something like that you need to set the environment variables manually. Assuming the compiler is installed in the default location, this should work for the Visual Studio 2008 compiler and the latest Windows SDK:

Add to PATH:

  • C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin
  • C:\Program Files\Microsoft Visual Studio 9.0\VC\Bin
  • C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE

Add to INCLUDE:

  • C:\Program Files\Microsoft SDKs\Windows\v6.1\Include
  • C:\Program Files\Microsoft Visual Studio 9.0\VC\include
  • C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include

Add to LIB:

  • C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib
  • C:\Program Files\Microsoft Visual Studio 9.0\VC\lib

These are the bare minimum, but should be enough for basic things. Study the vcvarsall.bat script to see what more you may want to set.

like image 139
Ville Laurikari Avatar answered Sep 18 '22 01:09

Ville Laurikari