C 某些函数不需要链接
我刚刚遇到一件奇怪的事情。在测试math.h时,我尝试使用pow()并编译它。我不必把数学联系起来。 但是当我尝试使用类似fmod()的东西时,我必须在编译程序时链接math.h。C 某些函数不需要链接,c,C,我刚刚遇到一件奇怪的事情。在测试math.h时,我尝试使用pow()并编译它。我不必把数学联系起来。 但是当我尝试使用类似fmod()的东西时,我必须在编译程序时链接math.h。 为什么我必须在第二种情况下链接库,而不是在第一种情况下链接库?您的编译器可能正在用常量替换pow的某些用法。例如,它可以用8.0替换pow(2.0,3.0)。这是一个很好的优化,意味着您不再需要math.h中的pow 但是您的编译器可能无法替换fmod,或者所有数学函数的用法,因此它仍然需要链接到数学库。您的编译器可
为什么我必须在第二种情况下链接库,而不是在第一种情况下链接库?您的编译器可能正在用常量替换
pow
的某些用法。例如,它可以用8.0
替换pow(2.0,3.0)
。这是一个很好的优化,意味着您不再需要math.h
中的pow
但是您的编译器可能无法替换
fmod
,或者所有数学函数的用法,因此它仍然需要链接到数学库。您的编译器可能正在用常量替换pow
的某些用法。例如,它可以用8.0
替换pow(2.0,3.0)
。这是一个很好的优化,意味着您不再需要math.h
中的pow
但是您的编译器可能无法替换fmod
,或者所有数学函数的用法,因此它仍然需要链接到数学库