SCons 无法选择编译器 (MinGW)

SCons can't pick the compiler (MinGW)

本文关键字:MinGW 编译器 选择 SCons      更新时间:2023-10-16

我有一个简单的sconstruct文件,带有以下代码

path = ['C:\MinGW\bin']
env = Environment(ENV = {'PATH' : path})
Program(target = 'myprogram', source = ['main.cpp'])

在CMD上运行" SCONS"给出以下错误消息:

cl /Fomain.obj /c main.cpp /TP /nologo
'cl' is not recognized as an internal or external command,
operable program or batch file.
scons: *** [main.obj] Error 1
scons: building terminated because of errors.

看起来SCONS没有选择我的编译器(mingw)。我究竟做错了什么?我在Windows 7 64位。

设置 tools 环境中的变量您应该使用 env.program('...')不是程序('...')。以下是我的MINGW的工作:

path = ['C:\Dev\MinGW\x64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin']
temp = 'C:\Temp'
env = Environment(ENV={'PATH': path, 'TEMP': temp}, 
                  tools=['mingw'])
env.Program('solver-tikhonov.cpp')

SCONS试图使用默认的Windows工具构建cl,即Visual Studio编译器。您需要告诉它使用mingw工具集,如下所示:

path = ['C:\MinGW\bin']
env = Environment(tools=['mingw'], ENV = {'PATH' : path})

执行此操作后,如果仍然找不到Mingw编译器,则可以按以下方式设置它:

env.Replace(CC='path/to/mingw/cc/compiler',
            CXX='path/to/mingw/c++/compiler')