当使用中文版MSVC作为meson的后台编译工具,进行meson setup 时, 会返回如下如下信息:
meson.build:1:0: ERROR: Failed to detect MSVC compiler target architecture: 'cl /?' output is
���� x64 �� Microsoft (R) C/C++ �Ż������� 19.16.27035 ��
此问题的原因在于environment.py 中检测C/C++编译器时的正则表达式以英文版的输出格式进行判断的,在非英文环境中匹配失败。
原文中代码如下,只匹配结尾的 x86、 x64:
cl_signature = lookat.split('\n')[0]
match = re.search('.*(x86|x64|ARM|ARM64)$', cl_signature)
我们可以手动修改《python安装路径》\Lib\site-packages\mesonbuild\environment.py 文件,将
match = re.search('.*(x86|x64|ARM|ARM64)$', cl_signature)
改为:
match = re.search('.*(x86|x64|ARM|ARM64)( |$)', cl_signature)
则可以正常识别中文版MSVC。