【问题标题】:What to do if tgamma() function is not defined?如果没有定义 tgamma() 函数怎么办?
【发布时间】:2013-04-19 23:34:52
【问题描述】:

我正在尝试使用标准库中的tgamma()。当我尝试编译时,我收到错误消息:

调用未定义的函数 tgamma

我有指令#include <cmath>。我使用 Embarcadero C++ Builder XE3,它声称支持 C++11 标准。我的问题可能是什么,如何解决?

【问题讨论】:

  • 您是为 32 位还是 64 位编译?只有 64 位编译器支持 C++11,32 位编译器还不支持。如果您正在编译 64 位,那么您是否使用 std 命名空间调用 tgamma? ... = std::tgamma(...);
  • 如何确定我是否正在为 64 位编译?我在 64 位机器上,但 IDE 安装在 Program Files(x86) 中。编译器应该支持 32 位和 64 位。
  • 在项目管理器中,Target Platforms 节点允许您添加项目支持的单个平台,并设置在任何给定时间处于活动状态的平台。 32 位和 64 位、Windows 和 Mac 都有单独的编译器,所以你必须告诉 IDE 编译哪个平台。

标签: c++11 c++builder math.h cmath gamma


【解决方案1】:

Boost 包含一个tgamma function

#include <boost/math/special_functions/gamma.hpp>
...
double rootPi = boost::math::tgamma<double>(0.5);

当然,您可以随时切换到不同的编译器,例如 gcc

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 2020-02-08
    • 1970-01-01
    • 2020-08-31
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多