SCons can't pick the compiler (MinGW) [duplicate]

孤人 提交于 2019-12-10 18:05:57

问题


I have a simple SConstruct file with the following code

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

Program(target = 'myprogram', source = ['main.cpp'])

running 'scons' on cmd gives the following error message:

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.

It looks like SCons does not pick my compiler (MinGW). What am I doing wrong? I'm on Windows 7 64bit.


回答1:


After setting tools variable in environment you should use env.Program('...') instead of Program('...'). Below is my working SConstruct for 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')



回答2:


SCons is trying to build with the default Windows tools, namely cl, which is the visual studio compiler. You need to tell it to use the mingw toolset, as follows:

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

After doing this, if it still cant find the mingw compiler, you can set it as follows:

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


来源:https://stackoverflow.com/questions/21242206/scons-cant-pick-the-compiler-mingw

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!