如何(动态)链接到Windows上的math.h函数?

时间:2013-02-15 04:48:26

标签: c++ visual-studio llvm math.h

我正在开发一个C ++应用程序,它使用LLVM JIT后端来动态编译代码。在这个JIT编译的代码中,我希望能够调用所有math.h函数,但目前只适用于其中一些函数,即fabs存在但fabsf不存在

似乎fabs的符号位于msvsrt.lib运行时库中,但不是fabsf,即使它们都在我的系统math.h中声明。我链接到错误的运行时库吗?或者我是否需要从其他地方获得“扩展”数学dll并链接到那个?

  • 平台:Windows 7,Visual Studio Express 2012
  • 在属性中,C/C++ > Code Generation > Runtime library =多线程DLL(/MD

1 个答案:

答案 0 :(得分:1)

看起来在某些情况下,math.h定义了这样的fabsf(取自包含在MSVC2010 express中的math.h)

#define fabsf(x)    ((float)fabs((double)(x)))

您的运行时库可能是以这种方式实现的,这意味着fabsf根本不存在,并且通过调用_fabs()将“正常”fabsf替换为C预处理器。