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

标签 linux gnu scons mingw-w64 win64

<分区>

我正在使用 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 - 在 GNU/Linux 中,如何将 mingw-w64 与 SCons 结合使用来生成 64 位 Windows 可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419825/

相关文章:

c - 我怎样才能重现这个 DDD 测试?

linux - 查找某些字符串序列的出现次数

linux - Bash 在启动时运行 gpxlogger

linux + 如何仅从行中删除匹配的数字

c - 是否可以随我的应用程序分发更新版本的 libc?

python - 配置 SCons 以使用单独的工具进行代码生成和汇编

linux - 在目录的所有文件名中查找并用另一个单词替换

gnu-make - 将 tput 与 make 一起使用

scons - 是否可以以只读方式使用 scons CacheDir

c++ - Scons 仅在 OSX 上将随机 '1' 附加到宏定义