我在研究cmake中用于构建库的代码行时遇到了这个问题:
-Wall -Wfloat-equal -o3 -fPIC
这些编译器标志是什么意思,它们如何工作?为什么需要插入它们?
答案 0 :(得分:1)
-Wall -Wfloat-equal -o3 -fPIC“
所以
-Wall
显然不能全部启用,但是可以启用很多编译器警告消息。它应该用于生成更好的代码,因为您会知道是否有任何问题。
-Wfloat-equal
警告在相等比较中是否使用浮点数。比较浮动是否相等是一项冒险的事情,因为1.0不一定是确切值。我不确定为什么要在这种情况下使用它,因为-Wall仍会显示警告。
-o3
可能是O3或优化级别3。AKA会优化到允许的最大级别(iirc)。
-fPIC
将生成与位置无关的代码。这有点复杂,但asked before有点复杂,但是对于包含在库中很有用。