【问题标题】:No "sqrtf" in math.hmath.h 中没有“sqrtf”
【发布时间】:2011-10-16 05:06:41
【问题描述】:

我在 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 搜索后,我发现我必须手动安装。一路沮丧,我意识到也许上帝在警告我不要走错路。所以……谁能给我一些提示?谢谢~

【问题讨论】:

  • 我在我的暂定项目中写了cout<<sqrtf(3)<<endl;。尽管有 Eclipse 的抱怨(“函数 'sqrtf' 无法解析”和“'endl' 的重载无效”),编译器仍正常运行。所以可能是Eclipse中的一些设置不当造成的。
  • 你能写一个小测试用例吗?看来你也是用c++写的?
  • #include <iostream> #include <math.h> using namespace std; int main() { cout<<sqrtf(3)<<endl; return 0;} 这就是我写的。有人发布了他的案例here,但即使我重建了索引,它仍然保持不变。这似乎是 CDT 的 codan 的错误,而不是我的 glibc 版本问题。

标签: eclipse posix upgrade eclipse-cdt glibc


【解决方案1】:

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

【讨论】:

  • 我上面的暂定程序编译后运行正常,忽略了Eclipse的抱怨,所以可能是Eclipse CDT的bug。
【解决方案2】:

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

【讨论】:

  • 您愿意链接到错误报告和/或解决方案吗?我也有同样的问题。
  • 是的......请......有什么解决办法,我有同样的问题。
  • @krico:检查您的索引器设置。有关详细信息,请参阅此答案:stackoverflow.com/questions/10095295/why-cant-codan-find-size-t/…
  • 你能准确说出你做了什么吗?我有该答案中推荐的设置,但仍然无法识别浮点数学函数(例如 atanf)...:-(
  • 致以上用户和@Christoph:我记得,我没有为此做任何事情,只是切换到另一个 IDE,因为我认为这是 CDT 的一个错误,超出了我的能力范围。跨度>
猜你喜欢
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
相关资源
最近更新 更多