这一次,主要想分享一下个人认为比较有意思的g++命令。也就是说不会涵盖所有的命令。
- 显示g++的版本信息
g++ --version
- 显示编译器的目标处理器
g++ -dumpmachine
- 显示编译器的搜索路径
g++ -print-search-dirs
- 显示每个子过程的执行时间
g++ -time hello.cpp
- 保留编译的中间文件:
*.ii
,*.s
,*.o
g++ -save-temps hello.cpp
- 显示编译器编译时调用的程序
g++ -v hello.cpp
- 只做预处理,不编译、不汇编、不链接,使用这个命令可以看到做了预处理后的文件
g++ -E hello.cpp
- 只编译,不做汇编和链接,得到的结果文件是
*.s
(是一个汇编程序,可以查看)
g++ -S hello.cpp
- 编译并且汇编,但不做链接,得到的是目标文件
*.o
,这是一个二进制文件,是可以被CPU执行的。
g++ -c hello.cpp
- 指定目标文件的名字,下面的作用就是把输出的结果输入到abc这份文件上,它也是一个目标文件。
g++ -o abc hello.cpp
-显示所有可能的警告信息
g++ -Wall hello.cpp
- 产生调试符号表,否则不能用gdb来调试
g++ -g hello.cpp
- –std=c++<##>,在编译时使用指定的C++版本
g++ --std=c++17 hello.cpp