R6002-floating point not loaded 的问题解决方法

最近项目的要计算浮点数据,为了调试方便,输出计算结果值到DEBUG信息,结果却出现 R6002 错误

 

Google了一下,MSDN上对于R6002的描述信息是:

------------------------------------------------------------------------------------------------------------------------

 

错误消息
未加载浮点支持

 

未链接必需的浮点库。

通过检查下面的可能原因进行修复

  1. 该程序通过选项(如 /FPi87,该选项要求有协处理器)被编译或链接,但该程序运行在一台未安装协处理器的计算机上。

  2. printf_s 或 scanf_s 函数的格式字符串包含浮点格式规范,而该程序不包含任何浮点值或变量。

  3. 编译器仅当必要时才通过加载浮点支持以最小化程序大小。编译器无法检测到格式字符串中的浮点格式规范,因此编译器未加载必要的浮点例程。

  4. 使用浮点参数以符合浮点格式规范,或在程序的其他地方执行浮点赋值。该操作将导致加载浮点支持。

  5. 在由混合语言编写的程序中,当程序进行链接时在 FORTRAN 库之前指定了 C 库。重新链接并最后指定 C 库。

 

 

------------------------------------------------------------------------------------------------------------------------

也就是说出现该问题的原因有上面几种可能

1.没有指定该选项,这个原因不可能

2.虽然是用的_vscprintf,vsprintf_s,但是肯定包含浮点值了

3.经过分析这个是可能的原因,因为我的要输出浮点数的地方是在EXE里,而实际输出到DEBUG信息的函数是在一个程序核心库的DLL里,也就是调用_vscprintf,vsprintf_s的代码就是在DLL里面,而这个DLL里没有任何一行代码用到浮点运行,导致了编译器没有加载“浮点例程”

 

 

解决办法:

强制编译器为这个DLL加载“浮点例程”

 

1.找了半天,没找到有这个编译选项,如有哪位知道的告诉我一下

2.在DLL里写一行没实际用途的浮点运算代码: float a = 0.00f,编译器就会检测到需要浮点运算

 

 

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R6002 - floating point support not loaded错误是指在编译或运行C语言程序时,遇到了浮点支持未加载的问题。这个错误通常会在使用浮点格式规范的函数(比如printf和scanf)时出现,而程序中没有实际的浮点值或变量。此时,编译器未加载必要的浮点例程,导致出现该错误。 造成此错误的原因有几种可能性。首先,编译器在编译或链接过程中可能指定了需要协处理器的选项(如/FPi87),但在运行该程序的计算机上未安装协处理器。其次,可能是程序中的格式字符串包含了浮点格式规范,但没有提供相应的浮点参数或浮点数据指针。编译器无法检测到这种情况,因此未加载必要的浮点支持。解决方法可以是在程序的其他地方执行浮点赋值操作,或者在参数列表中指定一个浮点类型的数值或数据指针来告诉编译器需要加载浮点支持。 需要注意的是,微软的运行时库函数以及UNIX V中的数学函数都需要从数学协处理器或编译器自带的浮点库中获取浮点支持。只有在需要时才会加载浮点支持功能。因此,当使用浮点类型说明符(比如%f)的格式化字符或printf和scanf函数时,需要在参数列表中指定一个浮点类型的数值或数据指针来告诉编译器需要加载浮点支持。 综上所述,解决R6002 - floating point support not loaded错误的方法是,在程序中提供浮点参数以符合浮点格式规范,或者在程序的其他地方执行浮点赋值操作。另外,还要确保在链接混合语言程序时,将C库指定在FORTRAN库之前。 请注意,本文重点讨论了R6002错误的原因和解决方法,并未涉及win32.pinfi病毒引起的问题。如果对该病毒感兴趣,可以参考相关资料以获取更多信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值