我正在尝试在 Windows 上构建 zxing 的 C++ 端口,但 scons 失败并显示:
cl : Command line error D8021 : invalid numeric argument '/Wextra'
我同时安装了 VS2010 和 MinGW,并且 scons 尝试使用 MSVC 编译器,即使 SConscript 文件假定 gcc 并使用 gcc 特定参数,这会导致错误。
我如何告诉 scons 改用 MinGW?
我正在尝试在 Windows 上构建 zxing 的 C++ 端口,但 scons 失败并显示:
cl : Command line error D8021 : invalid numeric argument '/Wextra'
我同时安装了 VS2010 和 MinGW,并且 scons 尝试使用 MSVC 编译器,即使 SConscript 文件假定 gcc 并使用 gcc 特定参数,这会导致错误。
我如何告诉 scons 改用 MinGW?
Scons 在 Windows 上默认使用 MSVC 编译器。在创建 Environment 对象时设置 mignw 编译器使用 tools 参数。
env = Environment(tools = ['mingw'])
然后使用 env.Program() 代替 Program()。
下面是我在 Windows 上为 mingw 工作的 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 文件夹路径。