编译器
Pre-defined C/C++ Compiler Macros
How to find out cl.exe’s built-in macros
C/C++ tip: How to list compiler predefined macros
Visual Studio
>Visual Studio 2015 中的 Visual C++
>> C++ 语言和标准库:C/C++ 预处理器参考
>> 用于 Visual C++ 开发的 IDE 和工具
>>> 生成 C/C++ 程序
>>>> 在命令行上生成:C 程序 / [C++ 程序]() /NMAKE 参考
>>>> C/C++ 生成参考
>>>>> 编译 C/C++ 程序
>>>>>> 编译器选项:/D(预处理器定义)、/U、/u(未定义符号)、/P(预处理到文件)、/link(将选项传递到链接器)
>>>>>> 设置编译器选项:编译器命令行语法、CL 调用链接器
GCC
gcc —— Using the GNU Compiler Collection (GCC)
libstdc++ —— The GNU C++ Library
cpp —— The C Preprocessor / Predefined Macros
Linux GCC编译器和GDB调试器
预处理-编译-汇编-链接过程分析
gcc编译出的elf文件分析
clang
clang: a C language family frontend for LLVM
Clang Language Extensions
Clang vs Other Open Source Compilers
通过编译 eddic 来比较 GCC 4.7 和 Clang 3.1 的性能
Language Dialect
Language Standards Supported by GCC
以下为 XCode | Project | Target | Build Settings 的截图。
C Language Dialect
Apple LLVM 9.0 – Language | C Language Dialect 对应 project.pbxproj 中 buildSettings 字典的 key =GCC_C_LANGUAGE_STANDARD。
Apple LLVM 8.1 & 9.0 支持的GCC_C_LANGUAGE_STANDARD 有以下8种:
- “ansi“; // ANSI C[-ansi]
- “c89“; // C89[-std=c89]
- “gnu89“; // GNU89[-std=gnu89]
- “c99“; // C99[-std=c99]
- “gnu99“; // GNU99[-std=gnu99]
- “c11“; // c11
- “gnu11“; // gnu11
- “compiler-default“; // Compiler Default
C++ Language Dialect
Apple LLVM 9.0 – Language – C++ | C++ Language Dialect 对应 project.pbxproj 中 buildSettings 字典的 key =CLANG_CXX_LANGUAGE_STANDARD。
Apple LLVM 8.1 支持的CLANG_CXX_LANGUAGE_STANDARD 有以下7种:
- “c++98“; // C++98[-std=c++98]
- “gnu++98“; // GNU++98[-std=gnu++98]
- “c++0x“; // C++11[-std=c++11]
- “gnu++0x“; // GNU++11[-std=gnu++11]
- “c++14“; // C++11[-std=c++14]
- “gnu++14“; // GNU++11[-std=gnu++14]
- “compiler-default“; // Compiler Default
Apple LLVM 9.0 相比 8.1 增加支持 c++17 和 gnu++17:
- “c++17“; // C++11[-std=c++17]
- “gnu++17“; // GNU++11[-std=gnu++17]
C++ Standard Library
Apple LLVM 9.0 – Language – C++ | C++ Standard Library 对应 project.pbxproj 中 buildSettings 字典的 key =CLANG_CXX_LIBRARY。
Apple LLVM 8.1 & 9.0 支持的CLANG_CXX_LIBRARY 有以下3种:
- “libstdc++“; // libstdc++(GNU C++ standard library)
- “libc++“; // libc++(LLVM C++ standard library with C++11 support)
- “compiler-default“; // Compiler Default
references
What is the default C mode for the current gcc (especially on Ubuntu)?
LLDB
LLDB Quick Start Guide:GDB and LLDB Command Examples
Dancing in the Debugger — A Waltz with LLDB /与调试器共舞 – LLDB 的华尔兹 @segmentfault