---
title: "C/C++ Properties (Linux C++) | Microsoft Docs"
ms.custom: ""
ms.date: "9/26/2017"
ms.reviewer: ""
ms.suite: ""
ms.technology:
- "vs-ide-general"
ms.tgt_pltfrm: ""
ms.topic: "article"
ms.assetid: 4bb8894b-c874-4a68-935e-b127d54e484f
author: "mikeblome"
ms.author: "mblome"
manager: "ghogen"
f1_keywords:
- VC.Project.VCClangCompilerTool.AdditionalIncludeDirectories
- VC.Project.VCClangCompilerTool.DebugInformationFormat
- VC.Project.VCClangCompilerTool.ObjectFile
- VC.Project.VCClangCompilerTool.WarningLevel
- VC.Project.VCClangCompilerTool.WarnAsError
- VC.Project.VCClangCompilerTool.AdditionalWarning
- VC.Project.VCClangCompilerTool.Verbose
- VC.Project.VCConfiguration.BuildLogFile
- VC.Project.VCClangCompilerTool.Optimization
- VC.Project.VCClangCompilerTool.StrictAliasing
- VC.Project.VCClangCompilerTool.UnrollLoops
- VC.Project.VCClangCompilerTool.LinkTimeOptimization
- VC.Project.VCClangCompilerTool.OmitFramePointers
- VC.Project.VCClangCompilerTool.NoCommonBlocks
- VC.Project.VCClangCompilerTool.PIC
- VC.Project.VCClangCompilerTool.ThreadSafeStatics
- VC.Project.VCClangCompilerTool.RelaxIEEE
- VC.Project.VCClangCompilerTool.HideInlineMethods
- VC.Project.VCClangCompilerTool.SymbolsHiddenByDefault
- VC.Project.VCClangCompilerTool.ExceptionHandling
- VC.Project.VCClangCompilerTool.RuntimeTypeInfo
- VC.Project.VCClangCompilerTool.CLanguageStandard
- VC.Project.VCClangCompilerTool.CppLanguageStandard
- VC.Project.VCClangCompilerTool.PreprocessorDefinitions
- VC.Project.VCClangCompilerTool.UndefinePreprocessorDefinitions
- VC.Project.VCClangCompilerTool.UndefineAllPreprocessorDefinitions
- VC.Project.VCClangCompilerTool.ShowIncludes
- VC.Project.VCClangCompilerTool.CompileAs
- VC.Project.VCClangCompilerTool.ForcedIncludeFiles
- vc.project.AdditionalOptionsPage
---
# C/C++ Properties (Linux C++)
## General
Property | Description | Choices
--- | ---| ---
Additional Include Directories | Specifies one or more directories to add to the include path; separate with semi-colons if more than one. (-I[path]).
Debug Information Format | Specifies the type of debugging information generated by the compiler. | **None** - Produces no debugging information, so compilation may be faster.
**Minimal Debug Information** - Generate minimal debug information.
**Full Debug Information (DWARF2)** - Generate DWARF2 debug information.
Object File Name | Specifies a name to override the default object file name; can be file or directory name. (-o [name]).
Warning Level | Select how strict you want the compiler to be about code errors. Other flags should be added directly to Additional Options. (/w, /Weverything). | **Turn Off All Warnings** - Disables all compiler warnings.
**EnableAllWarnings** - Enables all warnings, including those disabled by default.
Treat Warnings As Errors | Treats all compiler warnings as errors. For a new project, it may be best to use /Werror in all compilations; resolving all warnings will ensure the fewest possible hard-to-find code defects.
C Additional Warnings | Defines a set of additional warning messages.
C++ Additional Warnings | Defines a set of additional warning messages.
Enable Verbose mode | When Verbose mode is enabled, this tool would print out more information that for diagnosing the build.
C Compiler | Specifies the program to invoke during compilation of C source files, or the path to the C compiler on the remote system.
C++ Compiler | Specifies the program to invoke during compilation of C++ source files, or the path to the C++ compiler on the remote system.
Compile Timeout | Remote compilation timeout, in milliseconds.
Copy Object Files | Specifies whether to copy the compiled object files from the remote system to the local machine.
## Optimization
Property | Description | Choices
--- | ---| ---
Optimization | Specifies the optimization level for the application. | **Custom** - Custom optimization.
**Disabled** - Disable optimization.
**Minimize Size** - Optimize for size.
**Maximize Speed** - Optimize for speed.
**Full Optimization** - Expensive optimizations.
Strict Aliasing | Assume the strictest aliasing rules. An object of one type will never be assumed to reside at the same address as an object of a different type.
Unroll Loops | Unroll loops to make application faster by reducing number of branches executed at the cost of larger code size.
Link Time Optimization | Enable Inter-Procedural optimizations by allowing the optimizer to look across object files in your application.
Omit Frame Pointer | Suppresses creation of frame pointers on the call stack.
No Common Blocks | Allocate even unintialized global variables in the data section of the object file, rather then generating them as common blocks
## Preprocessor
Property | Description | Choices
--- | ---| ---
Preprocessor Definitions | Defines a preprocessing symbols for your source file. (-D)
Undefine Preprocessor Definitions | Specifies one or more preprocessor undefines. (-U [macro])
Undefine All Preprocessor Definitions | Undefine all previously defined preprocessor values. (-undef)
Show Includes | Generates a list of include files with compiler output. (-H)
## Code Generation
Property | Description | Choices
--- | ---| ---
Position Independent Code | Generate Position Independent Code (PIC) for use in a shared library.
Statics are thread safe | Emit Extra code to use routines specified in C++ ABI for thread safe initilization of local statics. | **No** - Disable thread safe statics.
**Yes** - Enable thread safe statics.
Floating Point Optimization | Enables floating point optimizations by relaxing IEEE-754 compliance.
Inline Methods Hidden | When enabled, out-of-line copies of inline methods are declared 'private extern'.
Symbol Hiddens By Default | All symbols are declared 'private extern' unless explicitly marked to be exported using the '__attribute' macro.
Enable C++ Exceptions | Specifies the model of exception handling to be used by the compiler. | **No** - Disable exception handling.
**Yes** - Enable exception handling.
## Language
Property | Description | Choices
--- | ---| ---
Enable Run-Time Type Information | Adds code for checking C++ object types at run time (runtime type information). (frtti, fno-rtti)
C Language Standard | Determines the C language standard. | **Default**
**C89** - C89 Language Standard.
**C99** - C99 Language Standard.
**C11** - C11 Language Standard.
**C99 (GNU Dialect)** - C99 (GNU Dialect) Language Standard.
**C11 (GNU Dialect)** - C11 (GNU Dialect) Language Standard.
C++ Language Standard | Determines the C++ language standard. | **Default**
**C++03** - C++03 Language Standard.
**C++11** - C++11 Language Standard.
**C++14** - C++14 Language Standard.
**C++03 (GNU Dialect)** - C++03 (GNU Dialect) Language Standard.
**C++11 (GNU Dialect)** - C++11 (GNU Dialect) Language Standard.
**C++14 (GNU Dialect)** - C++14 (GNU Dialect) Language Standard.
## Advanced
Property | Description | Choices
--- | ---| ---
Compile As | Select compile language option for .c and .cpp files. 'Default' will detect based on .c or .cpp extention. (-x c, -x c++) | **Default** - Default.
**Compile as C Code** - Compile as C Code.
**Compile as C++ Code** - Compile as C++ Code.
Forced Include Files | One or more forced include files (-include [name])
## Additional Options