问题 如何告诉scons使用MinGW而不是MSVC


我正在尝试在Windows上构建zxing的C ++端口,但是scons失败了:

cl : Command line error D8021 : invalid numeric argument '/Wextra'

我安装了VS2010和MinGW,并且scons尝试使用MSVC编译器,即使SConscript文件假定gcc并使用gcc特定的参数,这会导致错误。

我如何告诉scons使用MinGW?


6018
2017-10-31 15:43


起源



答案:


Scons默认在Windows上使用MSVC编译器。在创建Environment对象时设置mignw编译器使用工具参数。

env = Environment(tools = ['mingw'])

13
2017-10-31 17:43



对我不起作用。它说cc = gcc但是当构建目标时它仍然使用cl(bug?) - ljgww
发现它:它应该是env.Program(...)而不是Program(your_code)看到: stackoverflow.com/questions/21242206/... - ljgww


答案:


Scons默认在Windows上使用MSVC编译器。在创建Environment对象时设置mignw编译器使用工具参数。

env = Environment(tools = ['mingw'])

13
2017-10-31 17:43



对我不起作用。它说cc = gcc但是当构建目标时它仍然使用cl(bug?) - ljgww
发现它:它应该是env.Program(...)而不是Program(your_code)看到: stackoverflow.com/questions/21242206/... - ljgww


下面是我在Windows上使用monsw的SConstruct:

import os

env = Environment(ENV={'PATH': os.environ['PATH'], 'TEMP': os.environ['TEMP']}, tools=['mingw'])
env.Program('main.cpp')

Windows环境变量PATH和TEMP都可以 外部设定。环境变量PATH应包含mingw的bin文件夹路径。


-1
2018-06-01 06:55