C++ 为什么我不';在MinGW中不需要-lm标志,但在Linux中我需要显式地使用它吗?
如果我需要使用数学库,我需要在Linux中使用GCC时添加C++ 为什么我不';在MinGW中不需要-lm标志,但在Linux中我需要显式地使用它吗?,c++,c,linux,windows,gcc,C++,C,Linux,Windows,Gcc,如果我需要使用数学库,我需要在Linux中使用GCC时添加-lm。但是在Windows上,当我在MinGW-w64中使用GCC时,我没有使用-lm,而且它工作得很好 我知道为什么需要链接libm。但我真的不知道为什么我可以在Windows中省略它?因为在MinGW下,数学函数实际上没有在libm中定义。“libm”是用作占位符的空库;数学函数实际上是在MSVCRT.DLL中定义的 (将系统的MSVCRT用作标准C库的有效性。然而,这是MinGW所做的。)因为在MinGW下,数学函数实际上没有在l
-lm
。但是在Windows上,当我在MinGW-w64中使用GCC时,我没有使用-lm
,而且它工作得很好
我知道为什么需要链接
libm
。但我真的不知道为什么我可以在Windows中省略它?因为在MinGW下,数学函数实际上没有在libm中定义。“libm”是用作占位符的空库;数学函数实际上是在MSVCRT.DLL中定义的
(将系统的MSVCRT用作标准C库的有效性。然而,这是MinGW所做的。)因为在MinGW下,数学函数实际上没有在libm中定义。“libm”是用作占位符的空库;数学函数实际上是在MSVCRT.DLL中定义的
(将系统的MSVCRT用作标准C库的有效性。然而,MinGW就是这么做的。),在Unix和Linux C库设置中,这是一个长期存在的严重错误,您实际上需要使用
-lm
。我想说,您应该感谢MinGW修复了这个问题。,这是Unix和Linux C库设置中一个长期存在的重大错误,您实际上需要使用-lm
。我想说你应该感谢MinGW解决了这个问题。这只是配置上的差异。默认情况下,带有Mingw的gcc驱动程序配置为在数学库中链接,而linux中的gcc则不是。有关详细信息,请参见我的答案。FWIW,您也不需要在Mac上指定-lm
。如果您这样做,不会造成任何伤害,但是如果您不这样做,也不会造成任何伤害。mingw-w64开发人员修复了该错误。这只是配置上的差异。默认情况下,带有Mingw的gcc驱动程序配置为在数学库中链接,而linux中的gcc则不是。有关详细信息,请参见我的答案。FWIW,您也不需要在Mac上指定-lm
。如果您这样做,不会造成任何伤害,但是如果您不这样做,也不会造成任何伤害。mingw-w64开发人员修复了该错误有没有办法在MinGW64
上使用libm
优化数学?有没有办法在MinGW64
上使用libm
优化数学?