--- 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