|
1 | 1 | ---
|
2 |
| -title: "Introduction to Visual C++ for UNIX Users" |
3 |
| -ms.date: "09/01/2017" |
| 2 | +title: "Introduction to Microsoft C++ for UNIX Users" |
| 3 | +ms.date: "10/23/2019" |
4 | 4 | helpviewer_keywords: ["UNIX [C++]"]
|
5 | 5 | ms.assetid: 36108b31-e7fa-49a8-a1f7-7077fcbec873
|
6 | 6 | ---
|
7 |
| -# Introduction to Visual C++ for UNIX Users |
| 7 | +# Introduction to Microsoft C++ for UNIX Users |
8 | 8 |
|
9 |
| -This topic provides information for UNIX users who are new to Visual Studio and want to become productive with C++ and the Visual Studio Integrated Development Environment (IDE). |
| 9 | +This topic provides information for users of all flavors of UNIX who are new to Visual Studio and want to become productive with C++ either from the command line or by using Visual Studio. You can use Visual Studio with the Microsoft C++ compiler to target Windows. You can also use the Visual Studio IDE with GCC or Clang in UNIX environments such as remote Linux machines, MinGW-w64, and Windows Subsystem for Linux. To use C++ in Visual Studio, the **Desktop Development with C++** workload must be installed. Open the Visual Studio Installer to install the workload or add or remove optional components. Also install the **Linux Development with C++** workload if you'll be targeting a remote Linux machine. For Android or iOS development, install the **Mobile Development with C++** workload. |
10 | 10 |
|
11 |
| -## Getting Started on the Command Line |
| 11 | +## Getting started on the command line |
12 | 12 |
|
13 |
| -You can use the C++ compiler from the command line in a similar way that you would use a UNIX command-line environment. You compile from the command prompt by using the command-line C and C++ compiler (CL.EXE), linker (LINK.EXE), and other tools, including NMAKE.EXE, the Microsoft version of the UNIX make utility. |
| 13 | +You can use the Microsoft C++ compiler from the command line in a similar way that you would use a UNIX command-line environment. You compile from the command prompt by using the command-line C and C++ compiler (CL.EXE), linker (LINK.EXE), and other tools, including NMAKE.EXE, the Microsoft version of the UNIX make utility. |
14 | 14 |
|
15 |
| -In UNIX, commands are installed in a common folder, such as /usr/bin. In Visual Studio, the command-line tools are installed in your Visual Studio installation directory in the VC\bin subdirectory and its subdirectories. Unlike UNIX, these tools are not available in a plain command prompt window. To use the command-line tools, use a developer command prompt shortcut, or run a developer command file such as vcvarsall.bat. This sets up the path and other environment variables that are necessary to compile C++ programs from the command line. For more information, see [Build C/C++ code on the command line](../build/building-on-the-command-line.md) and [Walkthrough: Compiling a Native C++ Program on the Command Line](../build/walkthrough-compiling-a-native-cpp-program-on-the-command-line.md). |
| 15 | +In UNIX, commands are installed in a common folder, such as /usr/bin. In Visual Studio, the command-line tools are installed in your Visual Studio installation directory in the VC\bin subdirectory and its subdirectories. Unlike UNIX, these tools are not available in a plain command prompt window. To use the command-line tools, you must use a special developer command prompt that sets up the path and other environment variables that are necessary to compile C++ programs. For more information, see [Build C/C++ code on the command line](../build/building-on-the-command-line.md) and [Walkthrough: Compiling a Native C++ Program on the Command Line](../build/walkthrough-compiling-a-native-cpp-program-on-the-command-line.md). |
16 | 16 |
|
17 |
| -To open a developer command prompt shortcut, enter *developer command prompt* in the desktop search control and choose the **Developer Command Prompt** result for your version of Visual Studio. To choose a developer command prompt that is preconfigured for a particular host and target architecture, open the **Start** menu (the Windows icon in the corner of the desktop) and then scroll to the folder for your version of Visual Studio, such as **Visual Studio 2017**. Open the folder and choose the command prompt shortcut for your preferred host and target architecture. |
| 17 | +## Debugging your code |
18 | 18 |
|
19 |
| -To take advantage of more powerful features, such as the Visual Studio debugger, IntelliSense code look-up and statement completion, visual designers, project management, and so on, you need to use the Visual Studio IDE. |
| 19 | +You can use the Visual Studio debugger for Microsoft C++ projects from the command line, or from within the IDE. Compile with the [/Z7, /Zi, /ZI (Debug Information Format)](../build/reference/z7-zi-zi-debug-information-format.md) switch to enable stepping through sources. For more information, see [Debugging Native Code](/visualstudio/debugger/debugging-native-code) and [Using the Visual Studio IDE for C++ Desktop Development](../ide/using-the-visual-studio-ide-for-cpp-desktop-development.md). |
20 | 20 |
|
21 |
| -## Debugging Your Code |
| 21 | +For programs compiled with GCC or Clang, Visual Studio invokes GDB, LLDB, or whatever custom debugger you specify. |
22 | 22 |
|
23 |
| -If you use the command line and run your applications on your development workstation, you will see that a dialog box to run the Visual Studio debugger is displayed when your code encounters a memory access violation, unhandled exception, or other unrecoverable errors. If you click **OK**, then the Visual Studio development environment is started, and the debugger will open to the point of failure. It is possible to debug your applications this way, and, in this case, your source code would only be available if you compiled with the [/Z7, /Zi, /ZI (Debug Information Format)](../build/reference/z7-zi-zi-debug-information-format.md) switch. For more information, see [Debugging Native Code](/visualstudio/debugger/debugging-native-code) and [Using the Visual Studio IDE for C++ Desktop Development](../ide/using-the-visual-studio-ide-for-cpp-desktop-development.md). |
| 23 | +## Visual Studio project system |
24 | 24 |
|
25 |
| -## Using the Development Environment |
| 25 | +The Visual Studio project system is called MSBuild. It uses project files in XML format; C++ project files have the extension .vcxproj. An application that consists of multiple libraries and executables, each potentially built with a different set of compiler options or even in a different language, are stored in multiple projects that are part of a single *solution*. A solution is an abstraction for a container to group multiple projects together. Information about solutions is stored in a solution file with the extension .sln. For more information, see [Solutions and Projects in Visual Studio](/visualstudio/ide/solutions-and-projects-in-visual-studio) and [Using the Visual Studio IDE for C++ Desktop Development](../ide/using-the-visual-studio-ide-for-cpp-desktop-development.md). From the main menu, choose **File** > **New** > **Project** to see the available Visual Studio project templates. |
26 | 26 |
|
27 |
| -It is easier to use the development environment to edit and build your source code in a *project*. A project is a collection of source and related files that will be compiled into a single unit, such as a library or executable. A project also contains information on how the files are to be built. Information about projects is stored in a project file with the extension .prj. |
| 27 | +Starting in Visual Studio 2017, support for CMake projects is added, as well as options for using the Microsoft C++ compiler with any arbitrary build system, or with a loose folder of source files and no project files. For more information, see [CMake projects in Visual Studio](../build/cmake-projects-in-visual-studio.md) and [Open Folder projects in Visual Studio](../build/open-folder-projects.md). |
28 | 28 |
|
29 |
| -An application that consists of multiple libraries and executables, each potentially built with a different set of compiler options or even in a different language, are stored in multiple projects that are part of a single *solution*. A solution is an abstraction for a container to group multiple projects together. Information about solutions is stored in a solution file with the extension .sln. For more information, see [Solutions and Projects in Visual Studio](/visualstudio/ide/solutions-and-projects-in-visual-studio) and [Using the Visual Studio IDE for C++ Desktop Development](../ide/using-the-visual-studio-ide-for-cpp-desktop-development.md). |
30 |
| - |
31 |
| -## Importing Your Existing Code |
32 |
| - |
33 |
| -You can use the C++ compiler to build existing code that is set up to compile with or without a makefile and put it into a Visual Studio project. For more information, see [How to: Create a C++ Project from Existing Code](../build/how-to-create-a-cpp-project-from-existing-code.md). |
34 |
| - |
35 |
| -## Creating a New Project |
36 |
| - |
37 |
| -You can create new projects in the development environment. Visual Studio provides numerous templates that provide standard code for various common projects. You can use application wizards to generate projects with code outlines for various application types. |
38 |
| - |
39 |
| -You can start with an empty project by using the **Console Application (Win32) Wizard**. Select the **Empty Project** check box. You can then add new and existing files to the project later. |
40 |
| - |
41 |
| -When you create a project, you must name the project. By default, the project name equals the name of the dynamic-link library (DLL) or executable that is build from the project. For more information, see [Creating Solutions and Projects](/visualstudio/ide/creating-solutions-and-projects). |
42 |
| - |
43 |
| -## Microsoft-Specific Modifiers |
| 29 | +## Microsoft-specific modifiers |
44 | 30 |
|
45 | 31 | The Microsoft C++ compiler implements several extensions to the standard C++ programming language to support programming for Windows operating systems. These extensions are used to specify storage class attributes, function calling conventions, and based addressing, among other things. For a complete list of all supported C++ extensions, see [Microsoft-Specific Modifiers](../cpp/microsoft-specific-modifiers.md).
|
46 | 32 |
|
47 |
| -You can disable all Microsoft-specific extensions to C++ by using the `/Za` compiler option. This option is recommended if you want to write code to run on multiple platforms. For more information on the `/Za` compiler option, see [/Za, /Ze (Disable Language Extensions)](../build/reference/za-ze-disable-language-extensions.md). For more information on C++ compiler conformance, see [Visual C++ Language Conformance](../overview/visual-cpp-language-conformance.md) and [Nonstandard Behavior](../cpp/nonstandard-behavior.md). |
| 33 | +You can disable all Microsoft-specific extensions to C++ by using the `/Za` compiler option. This option is recommended if you want to write code to run on multiple platforms. For more information on the `/Za` compiler option, see [/Za, /Ze (Disable Language Extensions)](../build/reference/za-ze-disable-language-extensions.md). For more information on C++ compiler conformance, see [Microsoft C++ language conformance table](../overview/visual-cpp-language-conformance.md) and [Nonstandard Behavior](../cpp/nonstandard-behavior.md). |
48 | 34 |
|
49 |
| -## Precompiled Headers |
| 35 | +## Precompiled headers |
50 | 36 |
|
51 | 37 | The Microsoft C and C++ compilers provide options for precompiling any C or C++ code, including inline code. Using this performance feature, you can compile a stable body of code, store the compiled state of the code in a file, and, during subsequent compilations, combine the precompiled code with code that is still under development. Each subsequent compilation is faster because the stable code does not need to be recompiled.
|
52 | 38 |
|
53 |
| -By default, all precompiled code is specified in the files *pch.h* and *pch.cpp* (*stdafx.h* and *stdafx.cpp* in Visual Studio 2017 and earlier). The **New Project** wizard will automatically create these files for you unless you deselect the **Precompiled header** option. For more information on precompiled headers, see [Creating Precompiled Header Files](../build/creating-precompiled-header-files.md). |
| 39 | +By default, all precompiled code is specified in the files *pch.h* and *pch.cpp* (*stdafx.h* and *stdafx.cpp* in Visual Studio 2017 and earlier). For more information on precompiled headers, see [Creating Precompiled Header Files](../build/creating-precompiled-header-files.md). |
54 | 40 |
|
55 |
| -## Related Sections |
| 41 | +## Related sections |
56 | 42 |
|
57 | 43 | For more information, see [Porting from UNIX to Win32](../porting/porting-from-unix-to-win32.md).
|
58 | 44 |
|
|
0 commit comments