C++ Toolchains

编译器

编译器综述 /编译器的工作过程  

从零开始写个编译器


iOS编译过程的原理和应用 

深入剖析 iOS 编译 Clang / LLVM 

一篇文章走进mac逆向的世界 


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文件分析  

GCC 编译的背后 /GCC 编译详解 /GCC编译器总结  

Compiling GCC 7 on macOS


clang

clang: a C language family frontend for LLVM

Clang Language Extensions
Clang vs Other Open Source Compilers


LLVM 与 Clang 介绍  

结构化编译器前端 Clang 介绍  

GCC,LLVM,Clang编译器对比


C/C++: clang 代替 gcc 

Clang 比 GCC 好在哪里? 

编译器(GNU & GCC & clang & llvm) 

mac 使用gcc 为什么编译错误是clang 提示? 

通过编译 eddic 来比较 GCC 4.7 和 Clang 3.1 的性能 


Language Dialect

Language Standards Supported by GCC 

Options Controlling C Dialect 


以下为 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

ANSI C, Standard C 与 GCC 

C语言的各种版本:C89,AMD1,C99,C11 

What is the default C mode for the current gcc (especially on Ubuntu)? 


LLDB

LLDB to GDB Command Map 

LLDB Quick Start GuideGDB and LLDB Command Examples  


LLDB基础知识 /LLDB调试命令初探 

Dancing in the Debugger — A Waltz with LLDB /与调试器共舞 - LLDB 的华尔兹 @segmentfault 


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值