最近复习 C++, 顺手总结一下 c/c++ 的编译器。

gcc/g++ 区别

  • gcc 默认将 .c结尾的文件以c方式处理,.cpp 结尾的文件以 c++ 方式处理。而 g++ 把两者都用 c++ 方式处理。(c++语法比c更严格)
  • g++ 在预处理、编译、汇编阶段会调用 gcc来完成
  • 通常 g++ 用作链接阶段,但 gcc只是不能缺省的链接c++库文件,需要手动指明(-lstdc++).

gcc/g++ 参数

  • -o: 输出文件位置
  • -x:显示指名语言类型
  • -w: 不生成警告信息
  • -E:预处理
  • -S: 进行预处理和编译
  • -c: 进行预处理、编译、汇编
  • -O0 ~ -O3: 优化等级
  • -g: 添加调试信息
  • -ggdb: 尽可能的生成gdb调试信息
  • -static: 禁止使用动态库
  • -shared: 尽量使用动态库
  • -fPIC: 生成的代码为相对地址(用于配合-shared生成动态库)

标签: 工具, C/CPlusPlus

添加新评论