windowscl.exe

What directories should be included to MANUALLY compile source with cl.exe on Windows?


How can I set up -I cl.exe arguments in order to make my primitive .cpp file to compile? I want this to be done neither with calling Developer Command Prompt nor with vsvars32.bat file or any other .bat file which will set up all environment variables for me.

I need to know what paths to point in my -I options.

My .cpp file does not contain something special. It depends only on usual STL/system files. Here is what is included.

#include <stdio.h> 
#include <limits.h>
#include <vector>
#include <stdlib.h>
#include <algorithm>
#include <memory.h>
#include <string.h>
#include <math.h>
#include <string>
#include <algorithm>
#include <functional>
#include <cassert>

Solution

  • To make the long story short here is my command for cmd.exe. Note I didn't run any .bat files to setup any variables.

    cl.exe -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" 
    -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" 
    -I "C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt" 
    -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB" 
    -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB" 
    -I "C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86" 
    -I "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\lib\um\x86" 
    -I "C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86" 
    A.cpp /EHsc
    /link /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib"   
    /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib" 
    /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86" 
    /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86"
    

    I followed Hans Passant advice to look in Visual Studio VC++ Directories. Project > Properties > VC++ Directories > Include Directories setting. Alternatively one can run vcvars32.bat and then echo %INCLUDE% and %LIB% environment variables.

    Include directories for cl.exe:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
    C:\Program Files (x86)\Windows Kits\8.1\Include\um
    C:\Program Files (x86)\Windows Kits\8.1\Include\shared
    C:\Program Files (x86)\Windows Kits\8.1\Include\winrt
    

    Library directories for linker:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib
    C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86
    C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86
    C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\Lib\um\x86
    

    As you can see I'm using Visual Studio 2015 and that are the things for my case.