在公司的电脑上编译通过,回家后的Keil编译不通过,一直报错
一直报错各种库函数的问题:

C:\MinGW\include\math.h(475): error: invalid output constraint '=a' in asm
  __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));

理论上没错的,源代码库函数中一段条件编译语句,引用的是math.c库函数用与计算,代码如下:

#ifndef __NO_INLINE__
__CRT_INLINE int __cdecl __signbit (double x) {
  unsigned short stw;
  __asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
  return (stw & 0x0200) != 0;
}

__CRT_INLINE int __cdecl __signbitf (float x) {
  unsigned short stw;
  __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
  return (stw & 0x0200) != 0;
}

__CRT_INLINE int __cdecl __signbitl (long double x) {
  unsigned short stw;
  __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
  return (stw & 0x0200) != 0;
}
#endif
#ifndef _MATH_H
#define _MATH_H
#pragma GCC system_header

/* All the headers include this file.
 */
#include <_mingw.h>

这是头文件,清楚看到包括编译器的问题。

考虑编译器的原因,不可能是语法问题。

解决办法:
1.改变编译器的等级类型,报错等级:
改变通过等级
缺点:存在风险
2、直接更换编译器,使用GCC或者安装正版的MDK软件,破解等级增大。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐