【问题标题】:Visual Microsoft Visual C++ Compiler for Python 2.7 vs MinGW适用于 Python 2.7 与 MinGW 的 Visual Microsoft Visual C++ 编译器
【发布时间】:2016-01-07 15:16:03
【问题描述】:

我正在 c 中创建一些函数,我将通过 Cython 从 Python 调用这些函数。我正在使用 MinGW C++ 编译器在 Code:Block 中开发这些函数。但是在为 Python 构建它们时,我必须使用 Visual Microsoft Visual C++ Compiler for Python 2。然后我遇到了一个奇怪的问题。 使用 Visual C++ 编译器进行编译时,我经过大量试验并失败后发现所有变量都必须在每个块中的第一个(if、for、函数)之前清除。为什么会这样。 c的编译器有区别吗?

【问题讨论】:

  • 您的 VC++ 版本是多少?您还可以确保您的编译器未设置为针对 C: Project > Properties > Configuration properties > C/C++ > Advanced > Compile As 进行编译。检查它是否为 C++ 设置。
  • 我正在使用 Code:Block 和 MinGW。如何查看我使用的是哪种类型的 c 编译器?
  • 不要使用 C++ 编译器编译 C 代码!
  • 好的,我只安装了 Code:Block 并制作了一个 C 项目。认为我必须阅读我的 Code:Block 以找出它使用的编译器。

标签: python c cython


【解决方案1】:

MSVC 主要遵循原始 C89 规范。在后来的语言版本中,这个限制被取消了。

【讨论】:

    【解决方案2】:

    在 C(正确的 C 而不是 C++)中,变量必须在块的开头声明。

    【讨论】:

    • @fossekall,MinGW 是一个 C 和 C++ 编译器。与大多数编译器一样,它会决定它正在编译的文件应该是 C 文件还​​是 C++ 文件,然后进行编译。 MinGW 实际上使用本机编译器进行编译(不像 gcc 自己编译)。对于 Windows,这意味着 MinGW 在下面使用 MS VC++。
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多