【问题标题】:SCons can't pick the compiler (MinGW) [duplicate]SCons无法选择编译器(MinGW)[重复]
【发布时间】:2015-07-28 17:25:59
【问题描述】:

我有一个简单的 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 位上。

【问题讨论】:

    标签: c++ scons


    【解决方案1】:

    environment 中设置 tools 变量后,您应该使用 env.Program('...') 而不是 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')
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 两种方式都行不通。
      • @Amani 结果输出是什么?还在找cl吗?还是它现在正在寻找合适的编译器?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多