今天遇到这个情况:
“C函数‘float fabsf(float)’的声明冲突”
实验各种操作之后发现可以这么做:把“extern float __cdecl fabsf (float x);”这行注释掉,然后编译,ok。然后取消掉注释,再编译,就解决了这个问题。
后面发现在这一行extern后面多加一个空格,就可以复现这种情况:
然后即使删去空格再编译,也会一样报错,只有通过上文所述的先注释再编译才能解决。
朋友猜测应该是编译先后顺序的问题:在更改这个头文件之前,就只编译你写的而不会编译这个头文件;然后更改了这个头文件两个都会被编译。
谨以此文记录这个第一次遇到的bug,如有大佬了解相关问题还请不吝指教。