为什么我不需要MinGW中的-lm标志但是在Linux中我需要明确地使用它?

Guo*_*uai 1 c c++ linux windows gcc

如果我需要使用数学库,我需要-lm在Linux中使用GCC时添加.但是在Windows上,当我在MinGW-w64中使用GCC时,我没有使用-lm它并且效果很好.

我知道有必要链接的原因libm.但我真的不知道为什么我可以在Windows中省略它?

dus*_*uff 7

因为,在MinGW下,数学函数实际上并未在libm中定义."libm"是一个用作占位符的空库; 数学函数实际上是在MSVCRT.DLL中定义的,MinGW将其用作标准库.

(使用系统的MSVCRT作为标准C库的有效性值得商榷.然而,这就是MinGW所做的.)