如何用distutils指定C++ 11?

Ada*_*dam 14 python distutils c++11

我有一个需要用C++ 11编译的模块.在GCC和Clang上,这意味着一个std=c++11开关,或者std=c++0x在较旧的编译器上.

Python不是使用此开关编译的,因此Distutils在编译模块时不包含它.

使用distutils编译C++ 11代码的首选方法是什么?

jua*_*nza 12

您可以使用以下extra_compile_args参数distutils.core.Extension:

ext = Extension('foo', sources=[....],
                libraries=[....], 
                extra_compile_args=['-std=c++11'],
                ....)
Run Code Online (Sandbox Code Playgroud)

请注意,这完全取决于平台.它甚至不适用于某些旧版本的gcc和clang.

  • 这并不聪明,令人沮丧:P (6认同)