How to tell scons to use MinGW instead of MSVC

2019-01-26 06:58发布

问题:

I'm trying to build the C++ port of zxing on Windows, but scons fails with:

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

I have both VS2010 and MinGW installed, and scons tries to use the MSVC compiler, even though the SConscript file assumes gcc and use gcc-specific parameters, which causes the error.

How can I tell scons to use MinGW instead?

回答1:

Scons uses MSVC compiler by default on windows. To set mignw compiler use tools parameter while creating Environment object.

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


回答2:

Below is my working SConstruct for mingw on Windows:

import os

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

Windows Environment variables PATH and TEMP can be set externally. Environment variable PATH should include the bin folder path of mingw.