C/C++ Properties (Linux C++)
Linux support is available in Visual Studio 2017 and later.
General
Property | Description | Choices |
---|---|---|
Additional Include Directories | Specifies one or more directories to add to the include path. Use semi-colons to separate multiple directories. (-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. It can be a file or directory name. (-o [name]). | |
Warning Level | Selects how strict you want the compiler to be about code errors. Add other flags directly to Additional Options. (/w, /Weverything). | Turn Off All Warnings - Disables all compiler warnings. EnableAllWarnings - Enables all warnings, including ones 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. Resolve all warnings to 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, prints out more information to diagnose 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. | |
Max Parallel Compilation Jobs | The number of processes to create in parallel during compilation. The default is 1. If you're using Windows Subsystem for Linux (WSL) version 1, the limit is 64. | |
Validate Architecture | Specify whether to check if the platform the project targets matches the remote system. | |
Enable Address Sanitizer | Compile the program with Address Sanitizer, which is a fast memory error detector that can find runtime memory issues such as use-after-free, and perform out of bounds checks. |
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 | Assumes the strictest aliasing rules. An object of one type is never assumed to have the same address as an object of a different type. | |
Unroll Loops | Unrolls loops to make the application faster by reducing the number of branches executed, at the cost of larger code size. | |
Link Time Optimization | Enables 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 | Allocates even uninitialized global variables in the data section of the object file, rather than generate them as common blocks. |
Preprocessor
Property | Description |
---|---|
Preprocessor Definitions | Defines preprocessing symbols for your source file. (-D) |
Undefine Preprocessor Definitions | Specifies one or more preprocessor undefines. (-U [macro]) |
Undefine All Preprocessor Definitions | Undefines 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 | Generates position-independent code (PIC) for use in a shared library. | |
Statics are thread safe | Emits extra code to use routines specified in the C++ ABI for thread-safe initialization of local statics. | No - Disable thread-safe statics. Yes - Enable thread-safe statics. |
Floating Point Optimization | Enables floating-point optimizations by relaxing IEEE-754 conformance. | |
Inline Methods Hidden | When enabled, out-of-line copies of inline methods are declared private extern . |
|
Symbols Hidden By Default | All symbols are declared private extern unless explicitly marked for export by using the __attribute macro. |
|
Enable C++ Exceptions | Specifies the exception-handling model 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 | Selects compilation language option for .c and .cpp files. (-x c, -x c++) | Default - Detect based on the .c or .cpp extension. Compile as C Code - Compile as C code. Compile as C++ Code - Compile as C++ code. |
Forced Include Files | Specifies one or more forced include files (-include [name]) |