【问题标题】:C++ compiler for python supported C++11 (MinGW and MSVC) (also cl.exe fatal error)支持 C++11(MinGW 和 MSVC)的 python 的 C++ 编译器(也是 cl.exe 致命错误)
【发布时间】:2018-06-04 22:42:25
【问题描述】:

我正在尝试从setup.py 安装 python 包。 其实这个:https://github.com/facebookresearch/fastText 我使用 python 3.6(anaconda,内置于 Visual Studio 2017)

我有 Visual Studio 2017 并安装了 MinGW:

C:\MinGW\bin>gcc --version
gcc (MinGW.org GCC-6.3.0-1) 6.3.0

然后我使用:

python setup.py install

并获得下一条错误消息:

错误:“线程”不是“标准”的成员

我发现这意味着我需要使用 C++11 功能。好的。但是怎么做? 我试图在我的 python 目录中更改文件 distutils.cfg 以使用下一个编译器:

mingw32
msvc

但是对于msvc 会出现另一个错误:

错误 C2039:“to_string”:不是“std”的成员


我找了一些资料,添加-std=c++11来使用一些c++11的特性,但是我不明白在哪里以及如何使用它!安装后是否需要在 python shell 中编写它?还是在 distutils.cfg 中?我都试过了,结果:

错误:无法识别选项 -s ---> 对于 python

错误:不知道如何在平台“nt”上编译 C/C++ 代码 'msvc -std=c++11' 编译器 ---> 用于 distutils.cfg

【问题讨论】:

    标签: python c++11 gcc visual-c++ compiler-errors


    【解决方案1】:

    很久以后,我找到了解决方案。 问题是我没有正确安装 MSVC 并且(重要)没有将它添加到 PATH 变量中。 所以正确的排序:

    1. 使用 Visual Studio 安装程序安装下一个工具(您可以在此处获得免费版本:microsoft_official):
      • MSBuild
      • Visual Studio C++ 基本组件
      • VC++ 2017 版本 15.9 v14.16 最新 v141 工具
      • 用于 CMake 的 Visual C++ 工具
      • C++/CLI 支持
      • 适用于 Windows 10 的 SDK (10.0.17134.0)
      • 适用于 CMake 和 Linux 的 Visual C++ 工具
      • 工具箱 v14.13 和 14.11 用于 VC++ 2017 15.4/15.6 这里有点困难:有时包的名称会随着 Visual Studio Installer 的版本而变化,而且我有非英文版本,所以我手动翻译了它们的名称。也许您不需要所有这些,但这套适合我。
    2. 现在您有了 MSVC 编译器,我们需要告诉 python 使用它:将 cl.exe 路径添加到 Windows 中的 PATH 变量(通常位于此处): C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin

    这解决了使用 Windows 时大量 python 包的问题。但是您需要为此安装大型应用程序(几 GB)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-08
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 2014-07-23
      相关资源
      最近更新 更多