【发布时间】:2015-02-27 21:36:05
【问题描述】:
我需要使用 Math.h 中定义的 floorf() 函数,虽然我可以编译在我的 XE4 项目中成功使用的模块,但在链接时收到此错误:
[ilink32 Error] Error: Unresolved external '_floorf' referenced from <myfilename>.OBJ [ilink32 Error] Error: Unable to perform link
这是没有意义的——当我控制点击 floorf() 函数时,编译器显然知道函数的声明位置,因为它会打开 Math.h。我已经在 .cpp 文件中包含了#include。我需要什么才能让这个工作?我真的需要使用这个标准的数学函数。
【问题讨论】:
-
添加头文件只会让编译器知道函数的原型;它没有告诉链接器在哪里可以找到它。您还需要包含数学库。
-
您是否包含了包含“floorf”函数的库(不是头文件)。顺便说一句:函数名称是 'floorf' 而不是 '_floorf'
-
我无法弄清楚要包含的库的名称是什么。我已经尝试过 math.lib 和 libm.lib 两者显然都不存在。当 lib 文件的名称与标头不同且从未在任何地方记录时,我应该如何神奇地知道它的名称?
标签: c++ c math linker-errors c++builder-xe4