我正在开发一个C ++应用程序,它使用LLVM JIT后端来动态编译代码。在这个JIT编译的代码中,我希望能够调用所有math.h
函数,但目前只适用于其中一些函数,即fabs
存在但fabsf
不存在
似乎fabs
的符号位于msvsrt.lib
运行时库中,但不是fabsf
,即使它们都在我的系统math.h
中声明。我链接到错误的运行时库吗?或者我是否需要从其他地方获得“扩展”数学dll并链接到那个?
C/C++ > Code Generation > Runtime library
=多线程DLL(/MD
)答案 0 :(得分:1)
看起来在某些情况下,math.h定义了这样的fabsf(取自包含在MSVC2010 express中的math.h)
#define fabsf(x) ((float)fabs((double)(x)))
您的运行时库可能是以这种方式实现的,这意味着fabsf根本不存在,并且通过调用_fabs()将“正常”fabsf替换为C预处理器。