2011-07-29 51 views
6

我在Ubuntu 11.04下工作,现在正在从事一个项目,其源代码使用例如“sqrtf”或“lgamma”的例程,这些例程由我的IDE投诉,声称无法找到它们在“math.h”中。一位高级成员告诉我,我需要POSIX.1-2001。我用ldd --version来检查我的glibc的版本,它给了ldd (Ubuntu EGLIBC 2.13-0ubuntu13) 2.13。我猜想glibc的嵌入式版本是简化的,所以我决定将其升级到完整的glibc-2.14。但是在aptitude搜索之后,我发现我必须手动安装。一路上感到沮丧,我意识到也许上帝警告我走错了路。所以......任何人都可以给我一些提示吗?谢谢〜math.h中没有“sqrtf”

+1

我在我的试验性项目中写了'cout << sqrtf(3)<< endl;'。尽管Eclipse的投诉(“**函数”sqrtf'无法解析**“和”**'endl'**的无效重载“),编译器仍能正常运行。所以这可能归因于Eclipse中的一些不适当的设置。 – ziyuang

+0

你能写一个小的测试用例吗?看来你也在用C++编写它? – plaes

+0

'#include #include using namespace std; int main(){cout << sqrtf(3)<< endl;返回0;}'这就是我写的。有人张贴他的案件[这里](https://bugs.eclipse.org/bugs/show_bug.cgi?id=350343),但即使重建索引后,它仍然是相同的。这似乎是一个CDT编码错误,而不是我的glibc版本问题。 – ziyuang

回答

1

正如评论指出的那样,这是一个CDT的错误。

+0

你会关心链接到错误报告和/或解决方案吗?我也有同样的问题。 – Christoph

+0

是的......请......有什么解决办法,我有同样的问题。 – krico

+0

@krico:检查您的索引器设置。看到这个答案的细节:http://stackoverflow.com/questions/10095295/why-cant-codan-find-size-t/10095683#10095683 – HighCommander4

1

链接器是否用参数-lm调用?

+1

我的初步程序在编译后会正常运行,忽略了Eclipse的投诉,所以它可能是Eclipse CDT的一个缺陷。 – ziyuang