小编典典

C 的有用 GCC 标志是什么?

all

除了设置-Wall和设置之外-std=XXX,还有哪些其他真正有用但鲜为人知的编译器标志可用于 C 语言?

我对任何额外的警告特别感兴趣,和/或在某些情况下将警告变成错误,以绝对减少任何意外的类型不匹配。


阅读 94

收藏
2022-08-27

共1个答案

小编典典

几个-f代码生成选项很有趣:

  • -fverbose-asm如果您正在编译-S以检查程序集输出,这很有用 - 它添加了一些信息性注释。

  • -finstrument-functions添加代码以在每个函数入口和出口点调用用户提供的分析函数。

  • --coverage检测程序中的分支和调用,并创建一个覆盖注释文件,以便在程序运行时生成覆盖数据,该数据可由gcov程序格式化以帮助分析测试覆盖。

  • -fsanitize={address,thread,undefined}分别启用 AddressSanitizer、ThreadSanitizer 和 UndefinedBehaviorSanitizer 代码清理程序。这些检测程序以在运行时检查各种错误。

之前也提到过这个答案-ftrapv,但是这个功能已经被它所取代,-fsanitize=signed-integer- overflow它是由-fsanitize=undefined.

2022-08-27