在Windows上使用pip尝试为Python安装cxvopt软件包时,出现以下错误消息:

misc.h(35): error C2146: syntax error: missing ';' before identifier 'z'
misc.h(35): error C2061: syntax error: identifier 'z'
misc.h(36): error C2059: syntax error: '}'


... 等等。

该错误发生在文件misc.h(在base.c中引用)的复杂变量声明中,如下所示:

#ifndef NO_ANSI99_COMPLEX
typedef union {
  double d;
  int_t i;
  double complex z;
} number;
#endif


这在我正在使用的另一台计算机上不会发生。两者都根据需要安装了Visual Studio 14.0。

看到此问题的任何人都可以提出解决方案吗? (我最初的想法是包含“ complex.h”,但是cvxopt.h中引用了该文件,该文件在misc.h之前包含在base.c中。)

最佳答案

Visual Studio 14.0具有可悲的ANSI C89编译器,它甚至不支持the obsolete ISO C99 standard that this code requires。我想您应该定义宏NO_ANSI99_COMPLEX才能使编译成功。如果定义了此宏,则代码将跳过C99特定的构造。

我相信当您在另一台计算机上成功编译代码时就定义了此宏吗?

关于python - CVXOPT安装在文件misc.h中的复杂类型声明时失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42426654/

10-12 17:16