在 GNU/Linux 中,如何将 mingw-w64 与 SCons 结合使用来生成 64 位 Windows 可执行文件?

In GNU/Linux, how do I use mingw-w64 with SCons to produce a 64-bit Windows executable?

我正在使用 Linux Mint。

如何将 mingw-w64 与 SCons 一起使用来生成 64 位 Windows 可执行文件?我正在使用:

Environment(tools = ['mingw'], ...)

但它似乎仍然使用 g++

我正在使用 fedora 23,但我看到了与您描述的相同的行为,这是一个解决方案...一旦您指定了 mingw 工具,它将使用扩展等正确设置环境,但是您可能必须告诉它您的编译器和链接器在哪里。我确定每个发行版都不同...

>> scons --version
SCons by Steven Knight et al.:
    script: v2.3.6.rel_2.3.5:3347:d31d5a4e74b6[MODIFIED], 2015/07/31 14:36:10, by bdbaddog on hpmicrodog
    engine: v2.3.6.rel_2.3.5:3347:d31d5a4e74b6[MODIFIED], 2015/07/31 14:36:10, by bdbaddog on hpmicrodog
    engine path: ['/usr/lib/scons/SCons']
Copyright (c) 2001 - 2015 The SCons Foundation

>> tree  
.
├── main.cpp
└── SConstruct

0 directories, 2 files

>> cat main.cpp
#include <iostream>
int main() { std::cout << "Hello World" << std::endl; }

>> cat SConstruct 
env = Environment(tools = ['mingw'])
env.Replace(CXX='/usr/bin/x86_64-w64-mingw32-g++',
            LINK='/usr/bin/x86_64-w64-mingw32-g++')
env.Program('main.cpp')

>> scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
/usr/bin/x86_64-w64-mingw32-g++ -o main.o -c main.cpp
/usr/bin/x86_64-w64-mingw32-g++ -o main.exe main.o
scons: done building targets.

>> tree
.
├── main.cpp
├── main.exe
├── main.o
└── SConstruct

0 directories, 4 files

>> file main.exe
main.exe: PE32+ executable (console) x86-64, for MS Windows