本文记录 gcc 与 g++ 的相关信息。
1. gcc
1.1 gcc 对 c++ 标准的支持情况
1.2 gcc 与 g++ 的区别
编译区别:对于 .c 和 .cpp 文件,gcc 分别当做 c 和 cpp 文件编译,而 g++ 统一当成 cpp 文件编译。
链接区别:g++ 能自动链接 c++ 的标准库,而 gcc 需要手动指定,比如 gcc -lstdc++
。
1.3 gcc 选项列表
-c
只编译,不链接,生成目标文件 “.o”。
-S
只编译,不汇编,生成汇编文件 “.S”。
-E
只进行预编译/预处理,不做其他处理。
-o file
把输出写入文件名为 file 的文件里。
-g
在可执行文件中包含标准调试信息。
-v
打印出编译器内部编译各过程的命令行信息和编译器的版本。
-l dir
在头文件的搜索路径列表中添加 dir 目录。
-L dir
在库文件的搜索路径列表中添加 dir 目录。
-static
连接静态库(静态库也可以用动态库链接方式链接)
-llibrary
连接名为 library 的库文件(显示指定需要链接的动态库文件)
2. g++
2.1 g++ 查看当前支持的 c++ 版本信息
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus