SCons 找不到 mingw-w64 编译器

som*_*guy 3 scons mingw-w64

我最近安装了 mingw-w64 并尝试使用 SCons 构建程序。SConstruct这是我一直尝试使用的文件的示例:

env = Environment(tools = ['mingw'])
env.Program('test.c')
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...

scons: warning: No version of Visual Studio compiler found - C/C++ compilers most likely not set correctly
File "C:\Python27\Scripts\scons.py", line 199, in <module>
gcc -o test.o -c test.c
'gcc' is not recognized as an internal or external command,
operable program or batch file.
scons: *** [test.o] Error 1
scons: building terminated because of errors.
Run Code Online (Sandbox Code Playgroud)

我已经PATH正确设置了我的变量并且可以gcc通过命令行使用,所以 SCons 找不到它很奇怪。海湾合作委员会的位置是C:\Program Files\mingw-w64\mingw64\bin

我觉得奇怪的另一件事是必须指定工具。手册页说 mingw 是它的第二选择。我猜这与上述问题有关。

dir*_*hle 6

SCons 常见问题解答(可在项目网站https://www.scons.org上找到)回答了这个最常见的问题:为什么 SCons 找不到我的编译器/链接器

您必须将 shell 路径传播到构建环境。默认情况下,SCons 创建干净的构建环境,其中没有任何设置,这样就可以保证可重复的构建。

如常见问题解答中所述,将以下内容添加到您的 SConstruct 中:

import os
env = Environment(tools = ['mingw'], ENV = {'PATH' : os.environ['PATH']})
Run Code Online (Sandbox Code Playgroud)