2014-01-20 28 views
3

我有下面的代码使用SCons不能挑编译器(MinGW的)

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

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

运行 'scons的' CMD上一个简单的SConstruct文件提供了以下错误信息:

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位上。

回答

2

设置完成后工具环境变量,你应该使用env.Program( '... ')的代替计划(' ...')。下面是我为mingw工作的SConstruct:

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') 
3

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') 
+0

这两种方式都不起作用。 – Amani

+0

@Amani结果输出是什么?它是否仍在寻找cl?还是现在正在寻找合适的编译器? – Brady