关于编译中使用的标志

时间:2019-01-30 06:48:20

标签: c

我在研究cmake中用于构建库的代码行时遇到了这个问题:

-Wall -Wfloat-equal -o3 -fPIC

这些编译器标志是什么意思,它们如何工作?为什么需要插入它们?

1 个答案:

答案 0 :(得分:1)

  

-Wall -Wfloat-equal -o3 -fPIC“

所以

-Wall

显然不能全部启用,但是可以启用很多编译器警告消息。它应该用于生成更好的代码,因为您会知道是否有任何问题。

-Wfloat-equal

警告在相等比较中是否使用浮点数。比较浮动是否相等是一项冒险的事情,因为1.0不一定是确切值。我不确定为什么要在这种情况下使用它,因为-Wall仍会显示警告。

-o3

可能是O3或优化级别3。AKA会优化到允许的最大级别(iirc)。

-fPIC

将生成与位置无关的代码。这有点复杂,但asked before有点复杂,但是对于包含在库中很有用。