一、问题发生环境
python可以把C/C++代码编译并打包为pyd模块,从而可以使python脚本直接调用C/C++模块功能。
我在执行python setup.py build_ext --inplace时遇到了缺失cl.exe的错误提示,然后用pip安装了cl。
再次编译,提示cl: error: no such option: -I,改变cl版本仍然不行,百思不得其解。
二、解决办法
后来意识到C/C++模块的编译实际上还是python调用专门的C/C++编译器进行编译的,在另一台电脑上全新的环境上运行,发现系统默认执行的是Microsoft Visual C++ (14.0以上版本)下的cl来编译C/C++,而不是python下的cl。
Microsoft C++ 生成工具 - Visual Studio
下Microsoft生成工具,具体安装方法可以搜索“解决报错 Microsoft Visual C++ 14.0 is required”,网上有很多相关文档。
之后就可以正常调用MSVC的cl来编译打包pyd