在 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
我正在使用 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