简单的问题。我正在将其他人以前编写的代码导入到 Eclipse 中。我收到错误消息:
"undefined reference to `ceilf'"
当我使用ceilf
. 在我看来,ceilf
这应该包含在我的文件中包含的 math.h 库中。但是,当我打开 /usr/include/math.h 文件时,我没有看到定义的 ceilf 方法。事实上,据我所知,我的 redhat 部署中的 math.h 文件都没有ceilf
方法。知道在哪里定义了任性的ceilf
方法吗?由于此代码可以工作,甚至可以在其他地方编译,因此问题必须与我的配置有关,而不是代码本身。
附言。我可以使用常规ceil
方法。我考虑过只是切换到它,但是在程序的关键路径中效率会降低。是的,我知道过早的优化是邪恶的,但是出于好奇,我一直在问为什么我会出现错误。我不明白为什么我的math.h
文件不会玷污它。
编辑:: 感谢您解释为什么我找不到该ceilf
功能,我理解这个问题。但是,我不知道如何安抚日食。我已尝试按照建议将编译器选项设置为使用std=c99,但它并没有消除错误。事实上,我认为 eclipse 只是使用我的Makefile来进行构建,并且 make 文件不会抛出异常。我可以做些什么来让编辑器意识到我已经定义了文件?