I am using Matlab v2016b. On my computer, I installed Visual C Redistributable for Visual Studio 2015 from the official website. Press F5 while you are in the Visual Studio Integrated Development Environment (IDE). The IDE compiles the project and runs the application within the Visual Studio debugger. To compile and run the current project from the menu From the Debug menu of the Visual Studio IDE, choose Start Debugging.
![]() -->
Visual C++ includes a C compiler that you can use to create everything from basic console programs to full Windows Desktop applications, mobile apps, and more.
This walkthrough shows how to create a basic, 'Hello, World'-style C program by using a text editor, and then compile it on the command line. If you'd rather work in C++ on the command line, see Walkthrough: Compiling a Native C++ Program on the Command Line. If you'd like to try the Visual Studio IDE instead of using the command line, see Walkthrough: Working with Projects and Solutions (C++) or Using the Visual Studio IDE for C++ Desktop Development.
Prerequisites
To complete this walkthrough, you must have installed either Visual Studio and the optional Visual C++ components, or the Build Tools for Visual Studio.
Visual Studio is a powerful integrated development environment that supports a full-featured editor, resource managers, debuggers, and compilers for many languages and platforms. For information on these features and how to download and install Visual Studio, including the free Visual Studio Community edition, see Install Visual Studio.
The Build Tools for Visual Studio version of Visual Studio installs only the command-line toolset, the compilers, tools, and libraries you need to build C and C++ programs. It's perfect for build labs or classroom exercises and installs relatively quickly. To install only the command-line toolset, download Build Tools for Visual Studio from the Visual Studio downloads page and run the installer. In the Visual Studio installer, select the C++ build tools workload, and choose Install.
Before you can build a C or C++ program on the command line, you must verify that the tools are installed, and that you can access them from the command line. Visual C++ has complex requirements for the command-line environment to find the tools, headers, and libraries it uses. You can't use Visual C++ in a plain command prompt window without some preparation. You need a developer command prompt window, which is a regular command prompt window that has all the required environment variables set. Fortunately, Visual C++ installs shortcuts for you to launch developer command prompts that have the environment set up for command line builds. Unfortunately, the names of the developer command prompt shortcuts and where they're located are different in almost every version of Visual C++ and on different versions of Windows. Your first walkthrough task is to find the right shortcut to use.
Note
A developer command prompt shortcut automatically sets the correct paths for the compiler and tools, and for any required headers and libraries. Some of these values are different for each build configuration. You must set these environment values yourself if you don't use one of the shortcuts. For more information, see Set the Path and Environment Variables for Command-Line Builds. Because the build environment is complex, we strongly recommend you use a developer command prompt shortcut instead of building your own.
These instructions vary depending on which version of Visual Studio you are using. Before continuing, make sure that the version selector in the upper left of this page is set correctly.
Open a developer command prompt in Visual Studio 2019
If you have installed Visual Studio 2019 on Windows 10, open the Start menu, and then scroll down and open the Visual Studio 2019 folder (not the Visual Studio 2019 app). Choose Developer Command Prompt for VS 2019 to open the command prompt window.
If you're using a different version of Windows, look in your Start menu or Start page for a Visual Studio tools folder that contains a developer command prompt shortcut. You can also use the Windows search function to search for 'developer command prompt' and choose one that matches your installed version of Visual Studio. Use the shortcut to open the command prompt window.
Open a developer command prompt in Visual Studio 2017
If you have installed Visual Studio 2017 on Windows 10, open the Start menu, and then scroll down and open the Visual Studio 2017 folder (not the Visual Studio 2017 app). Choose Developer Command Prompt for VS 2017 to open the command prompt window.
If you're running a different version of Windows, look in your Start menu or Start page for a Visual Studio tools folder that contains a developer command prompt shortcut. You can also use the Windows search function to search for 'developer command prompt' and choose one that matches your installed version of Visual Studio. Use the shortcut to open the command prompt window.
Open a developer command prompt in Visual Studio 2015
If you have installed Microsoft Visual C++ Build Tools 2015 on Windows 10, open the Start menu, and then scroll down and open the Visual C++ Build Tools folder. Choose Visual C++ 2015 x86 Native Tools Command Prompt to open the command prompt window.
![]()
If you're running a different version of Windows, look in your Start menu or Start page for a Visual Studio tools folder that contains a developer command prompt shortcut. You can also use the Windows search function to search for 'developer command prompt' and choose one that matches your installed version of Visual Studio. Use the shortcut to open the command prompt window.
Next, verify that the Visual C++ developer command prompt is set up correctly. In the command prompt window, enter
cl and verify that the output looks something like this:
There may be differences in the current directory or version numbers, depending on the version of Visual C++ and any updates installed. If the above output is similar to what you see, then you're ready to build C or C++ programs at the command line.
Note
If you get an error such as 'cl' is not recognized as an internal or external command, operable program or batch file,' error C1034, or error LNK1104 when you run the cl command, then either you are not using a developer command prompt, or something is wrong with your installation of Visual C++. You must fix this issue before you can continue.
If you can't find the developer command prompt shortcut, or if you get an error message when you enter
cl , then your Visual C++ installation may have a problem. If you're using Visual Studio 2017 or later, try reinstalling the Desktop development with C++ workload in the Visual Studio installer. For details, see Install C++ support in Visual Studio. Or, reinstall the Build Tools from the Visual Studio downloads page. Don't go on to the next section until this works. For more information about installing and troubleshooting Visual Studio, see Install Visual Studio.
Note
Depending on the version of Windows on the computer and the system security configuration, you might have to right-click to open the shortcut menu for the developer command prompt shortcut and then choose Run as Administrator to successfully build and run the program that you create by following this walkthrough.
Create a C source file and compile it on the command line
Next steps
This 'Hello, World' example is about as simple as a C program can get. Real world programs have header files and more source files, link in libraries, and do useful work.
You can use the steps in this walkthrough to build your own C code instead of typing the sample code shown. You can also build many C code sample programs that you find elsewhere. To compile a program that has additional source code files, enter them all on the command line, like:
cl file1.c file2.c file3.c
The compiler outputs a program called file1.exe. To change the name to program1.exe, add an /out linker option:
cl file1.c file2.c file3.c /link /out:program1.exe
And to catch more programming mistakes automatically, we recommend you compile by using either the /W3 or /W4 warning level option:
cl /W4 file1.c file2.c file3.c /link /out:program1.exe
The compiler, cl.exe, has many more options you can apply to build, optimize, debug, and analyze your code. For a quick list, enter
cl /? at the developer command prompt. You can also compile and link separately and apply linker options in more complex build scenarios. For more information on compiler and linker options and usage, see C/C++ Building Reference.
You can use NMAKE and makefiles, or MSBuild and project files to configure and build more complex projects on the command line. For more information on using these tools, see NMAKE Reference and MSBuild.
The C and C++ languages are similar, but not the same. The Microsoft C/C++ compiler (MSVC) uses a simple rule to determine which language to use when it compiles your code. By default, the MSVC compiler treats all files that end in .c as C source code, and all files that end in .cpp as C++ source code. To force the compiler to treat all files as C non-dependent of file name extension, use the /Tc compiler option.
MSVC is compatible with the ISO C99 standard, but not strictly compliant. In most cases, portable C code will compile and run as expected. Visual C++ doesn't support most of the changes in ISO C11. Certain library functions and POSIX function names are deprecated by MSVC. The functions are supported, but the preferred names have changed. For more information, see Security Features in the CRT and Compiler Warning (level 3) C4996.
See also
Walkthrough: Creating a Standard C++ Program (C++) -->
C Language Reference Projects and build systems Compatibility
You can build C and C++ applications on the command line by using tools that are included in Visual Studio. The Microsoft C++ (MSVC) compiler toolset is also downloadable as a standalone package that doesn't include the Visual Studio IDE.
Download and install the tools
If you've installed Visual Studio and a C++ workload, you have all the command-line tools. For information on how to install C++ and Visual Studio, see Install C++ support in Visual Studio. If you only want the command-line toolset, download the Build Tools for Visual Studio. When you run the downloaded executable, it updates and runs the Visual Studio Installer. To install only the tools you need for C++ development, select the C++ build tools workload. You can select optional libraries and toolsets to include under Installation details. To build code by using the Visual Studio 2015 or 2017 toolsets, select the optional MSVC v140 or MSVC v141 build tools. When you're satisfied with your selections, choose Install.
How to use the command-line tools
When you choose one of the C++ workloads in the Visual Studio Installer, it installs the Visual Studio platform toolset. A platform toolset has all the C and C++ tools for a specific Visual Studio version. The tools include the C/C++ compilers, linkers, assemblers, and other build tools, and matching libraries. You can use all of these tools at the command line. They're also used internally by the Visual Studio IDE. There are separate x86-hosted and x64-hosted compilers and tools to build code for x86, x64, ARM, and ARM64 targets. Each set of tools for a particular host and target build architecture is stored in its own directory.
To work correctly, the tools require several specific environment variables to be set. These variables are used to add the tools to the path, and to set include file, library file, and SDK locations. To make it easy to set these environment variables, the installer creates customized command files, or batch files, during installation. You can run one of these command files to set a specific host and target build architecture, Windows SDK version, and platform toolset. For convenience, the installer also creates shortcuts in your Start menu. The shortcuts start developer command prompt windows by using these command files for specific combinations of host and target. These shortcuts ensure all the required environment variables are set and ready to use.
The required environment variables are specific to your installation and to the build architecture you choose. They also might be changed by product updates or upgrades. That's why we recommend you use an installed command prompt shortcut or command file, instead of setting the environment variables yourself. For more information, see Set the path and environment variables for command-line builds.
The toolsets, command files, and shortcuts installed depend on your computer processor and the options you selected during installation. The x86-hosted tools and cross tools that build x86 and x64 code are always installed. If you have 64-bit Windows, the x64-hosted tools and cross tools that build x86 and x64 code are also installed. If you choose the optional C++ Universal Windows Platform tools, then the x86 and x64 tools that build ARM and ARM64 code also get installed. Other workloads may install additional tools.
Developer command prompt shortcuts
The command prompt shortcuts are installed in a version-specific Visual Studio folder in your Start menu. Here's a list of the base command prompt shortcuts and the build architectures they support:
The Start menu folder and shortcut names vary depending on the installed version of Visual Studio. If you set one, they also depend on the installation Nickname. For example, suppose you installed Visual Studio 2019, and you gave it a nickname of Latest. The developer command prompt shortcut is named Developer Command Prompt for VS 2019 (Latest), in a folder named Visual Studio 2019.
The Start menu folder and shortcut names vary depending on the installed version of Visual Studio. If you set one, they also depend on the installation Nickname. For example, suppose you installed Visual Studio 2017, and you gave it a nickname of Latest. The developer command prompt shortcut is named Developer Command Prompt for VS 2017 (Latest), in a folder named Visual Studio 2017.
The Start menu folder and shortcut names vary depending on the installed version of Visual Studio. For example, suppose you installed Visual Studio 2015. The developer command prompt shortcut is named Developer Command Prompt for VS 2015.
To open a developer command prompt window
For an even faster way to open a developer command prompt, enter developer command prompt in the desktop search box. Then choose the result you want.
Developer command file locations
If you prefer to set the build environment in an existing command prompt window, you can use one of the command files created by the installer. We recommend you set the environment in a new command prompt window. We don't recommend you later switch environments in the same command window.
The command file location depends on the version of Visual Studio you installed, and on choices you made during installation. For Visual Studio 2019, the typical installation location on a 64-bit system is in Program Files (x86)Microsoft Visual Studio2019edition. Edition may be Community, Professional, Enterprise, BuildTools, or another nickname you supplied.
The command file location depends on the version of Visual Studio you installed, and on choices you made during installation. For Visual Studio 2017, the typical installation location on a 64-bit system is in Program Files (x86)Microsoft Visual Studio2017edition. Edition may be Community, Professional, Enterprise, BuildTools, or another nickname you supplied.
The command file location depends on the Visual Studio version, and the installation directory. For Visual Studio 2015, the typical installation location is in Program Files (x86)Microsoft Visual Studio 14.0.
The primary developer command prompt command file, VsDevCmd.bat, is located in the Common7Tools subdirectory. When no parameters are specified, it sets the environment to use the x86-native tools to build 32-bit x86 code.
More command files are available to set up specific build architectures. The command files available depend on the Visual Studio workloads and options you've installed. In Visual Studio 2017 and Visual Studio 2019, you'll find them in the VCAuxiliaryBuild subdirectory.
More command files are available to set up specific build architectures. The command files available depend on the Visual Studio workloads and options you've installed. In Visual Studio 2015, they're located in the VC, VCbin, or VCbinarchitecture subdirectories, where architecture is one of the native or cross-compiler options.
These command files set default parameters and call VsDevCmd.bat to set up the specified build architecture environment. A typical installation may include these command files:
Caution
The vcvarsall.bat file and other Visual Studio command files can vary from computer to computer. Do not replace a missing or damaged vcvarsall.bat file by using a file from another computer. Rerun the Visual Studio installer to replace the missing file.
The vcvarsall.bat file also varies from version to version. If the current version of Visual Studio is installed on a computer that also has an earlier version of Visual Studio, do not run vcvarsall.bat or another Visual Studio command file from different versions in the same command prompt window.
Use the developer tools in an existing command window
The simplest way to specify a particular build architecture in an existing command window is to use the vcvarsall.bat file. Use vcvarsall.bat to set environment variables to configure the command line for native 32-bit or 64-bit compilation. Arguments let you specify cross-compilation to x86, x64, ARM, or ARM64 processors. You can target Microsoft Store, Universal Windows Platform, or Windows Desktop platforms. You can even specify which Windows SDK to use, and select the platform toolset version.
When used with no arguments, vcvarsall.bat configures the environment variables to use the current x86-native compiler for 32-bit Windows Desktop targets. You can add arguments to configure the environment to use any of the native or cross compiler tools. vcvarsall.bat displays an error message if you specify a configuration that's not installed or available on your computer.
vcvarsall syntax
vcvarsall.bat [architecture] [platform_type] [winsdk_version] [-vcvars_ver=vcversion]
architecture
This optional argument specifies the host and target architecture to use. If architecture isn't specified, the default build environment is used. These arguments are supported:
platform_type
This optional argument allows you to specify store or uwp as the platform type. By default, the environment is set to build desktop or console apps.
winsdk_version
Optionally specifies the version of the Windows SDK to use. By default, the latest installed Windows SDK is used. To specify the Windows SDK version, you can use a full Windows 10 SDK number such as 10.0.10240.0, or specify 8.1 to use the Windows 8.1 SDK.
vcversion
Optionally specifies the Visual Studio compiler toolset to use. By default, the environment is set to use the current Visual Studio compiler toolset.
Use -vcvars_ver=14.2x.yyyyy to specify a specific version of the Visual Studio 2019 compiler toolset.
Use -vcvars_ver=14.16 to specify the latest version of the Visual Studio 2017 compiler toolset.
Use -vcvars_ver=14.16 to specify the latest version of the Visual Studio 2017 compiler toolset.
Use -vcvars_ver=14.1x.yyyyy to specify a specific version of the Visual Studio 2017 compiler toolset.
Use -vcvars_ver=14.0 to specify the Visual Studio 2015 compiler toolset.
To set up the build environment in an existing command prompt window
Create your own command prompt shortcut
Open the Properties dialog for a developer command prompt shortcut to see the command target used. For example, the target for the x64 Native Tools Command Prompt for VS 2019 shortcut is something similar to:
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat'
Open the Properties dialog for a developer command prompt shortcut to see the command target used. For example, the target for the x64 Native Tools Command Prompt for VS 2017 shortcut is something similar to:
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat'
Open the Properties dialog for a developer command prompt shortcut to see the command target used. For example, the target for the VS2015 x64 Native Tools Command Prompt shortcut is something similar to:
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio 14.0VCvcvarsall.bat' amd64
The architecture-specific batch files set the architecture parameter and call vcvarsall.bat. You can pass the same options to these batch files as you would pass to vcvarsall.bat, or you can just call vcvarsall.bat directly. To specify parameters for your own command shortcut, add them to the end of the command in double-quotes. For example, here's a shortcut to build ARM code for UWP on a 64-bit platform, using the latest Windows SDK. To use an earlier compiler toolset, specify the version number. Use something like this command target in your shortcut:
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvarsall.bat' amd64_arm uwp -vcvars_ver=14.16
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsall.bat' amd64_arm uwp -vcvars_ver=14.0
%comspec% /k 'C:Program Files (x86)Microsoft Visual Studio 14.0VCvcvarsall.bat' amd64 -vcvars_ver=12.0
Adjust the path to reflect your Visual Studio installation directory. The vcvarsall.bat file has additional information about specific version numbers.
Command-line tools
To build a C/C++ project at a command prompt, Visual Studio provides these command-line tools:
CL
Use the compiler (cl.exe) to compile and link source code files into apps, libraries, and DLLs.
Link
Use the linker (link.exe) to link compiled object files and libraries into apps and DLLs.
MSBuild
Use MSBuild (msbuild.exe) and a project file (.vcxproj) to configure a build and invoke the toolset indirectly. It's equivalent to running the Build project or Build Solution command in the Visual Studio IDE. Running MSBuild from the command line is an advanced scenario and not commonly recommended.
DEVENV
Use DEVENV (devenv.exe) combined with a command-line switch such as /Build or /Clean to execute certain build commands without displaying the Visual Studio IDE. In general, DEVENV is preferred over using MSBuild directly, because you can let Visual Studio handle the complexities of MSBuild.
NMAKE
Use NMAKE (nmake.exe) on Windows to build C++ projects based on a traditional makefile.
When you build on the command line, the F1 command isn't available for instant help. Instead, you can use a search engine to get information about warnings, errors, and messages, or you can use the offline help files. To use the search in docs.microsoft.com, use the search box at the top of the page.
In this section
These articles show how to build apps on the command line, and describe how to customize the command-line build environment. Some show how to use 64-bit toolsets, and target x86, x64, ARM, and ARM64 platforms. They also describe use of the command-line build tools MSBuild and NMAKE.
Walkthrough: Compiling a native C++ program on the command line
Gives an example that shows how to create and compile a C++ program on the command line.
Walkthrough: Compile a C program on the command line
Describes how to compile a program written in the C programming language.
Walkthrough: Compiling a C++/CLI program on the command line
Describes how to create and compile a C++/CLI program that uses the .NET Framework.
Walkthrough: Compiling a C++/CX program on the command line
Describes how to create and compile a C++/CX program that uses the Windows Runtime.
Set the path and environment variables for command-line builds
How to set environment variables to use a 32-bit or 64-bit toolset to target x86, x64, ARM, and ARM64 platforms.
NMAKE reference
Provides links to articles that describe the Microsoft Program Maintenance Utility (NMAKE.EXE).
MSBuild on the command line - C++
Provides links to articles that discuss how to use msbuild.exe from the command line. Related sections
/MD, /MT, /LD (Use run-time library)
Describes how to use these compiler options to use a Debug or Release run-time library.
C/C++ compiler options
Provides links to articles that discuss the C and C++ compiler options and CL.exe.
MSVC linker options
Provides links to articles that discuss the linker options and LINK.exe.
Additional MSVC build tools
Provides links to the C/C++ build tools that are included in Visual Studio. See also![]() Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2022
Categories |