简单的问题。我正在将之前由其他人编写的代码导入 Eclipse。我收到错误:

"undefined reference to `ceilf'"

当我使用 ceilf 时。在我看来,ceilf 应该包含在 math.h 库中,该库包含在我的文件中。但是,当我打开/usr/include/math.h 文件时,我没有看到定义的 ceilf 方法。事实上,据我所知,我的 redhat 部署中的 math.h 文件都没有 ceilf 方法。知道在哪里定义任性的 ceilf 方法吗?由于此代码有效,甚至可以在其他地方编译,因此问题必须与我的配置有关,而不是代码本身。

附:我可以使用常规的 ceil 方法。我已经考虑过切换到它,但它在程序的关键路径中效率较低。是的,我知道过早的优化是邪恶的,但出于好奇,为什么我会出现错误,我问了多少。我不明白为什么我的 math.h 文件不会污染它。

编辑::
感谢您解释为什么我找不到 ceilf 函数,我理解这个问题。但是,我不知道如何安抚eclipse。我已经尝试将编译器选项设置为按照建议使用 std=c99 并且它没有消除错误。事实上,我认为 eclipse 只是使用我的 Makefile 来进行构建,而 make 文件不会抛出异常。有什么我可以做的让编辑器意识到我已经定义了文件?

最佳答案

ceilf 是数学库的一部分,因此您需要与 -lm 链接才能使用它。仅仅 #include <math.h> 是不够的。

关于c - "undefined reference to ` ceilf '",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10935029/

10-11 16:44