编辑(2021):
我写原始答案已经8年多了,此时我会提供不同的意见。
2021 年,Linux 成为现在的主流开发平台,使用 Windows 开发与 Linux 息息相关的东西的人越来越少。那些被迫使用 Windows 的软件工程师经常使用双启动、VM 或 SSH 访问构建机器。那些喜欢冰沙的人使用 Docker,这是一种构建事物并将构建工件保存在云中的奇特方式,以及监控和天知道是什么。现在,Visual Studio 还支持远程 Linux 目标,甚至WSL。疯狂的。
所以,截至 2021 年,我的建议是:如果你问这个问题,那你就错了。当涉及到任何与 Linux 相关的东西时,不要将 Windows 用作构建机器。如果你真的需要在同一台 Windows 机器上构建 Linux 代码,我会看看这两个选项:
- WSL 和
mingw-w64
- Docker(例如这个)
原始答案(2012):
我在这里看到两个选项:
- 在 Windows 上模拟 Unix 环境
- 从 Unix/Linux 交叉编译到 Windows 目标平台
虽然第二个选项可能会减少在本地环境中构建的麻烦,但如果您主要在 Windows 上工作,我发现它很不舒服,因为这需要将生成的二进制文件传输到 Windows 机器。让我们看看第一个选项 - 模拟 Unix 环境并在 Windows 上构建 GNU 软件。
虽然某些包可能支持在 Windows 上构建而无需准备环境,但这些可能是使用 CMake、Visual Studio 和其他非典型构建 GNU 开源东西的方式完成的自定义解决方案。
Windows 上的 Unix 环境仿真有两个流行的选项,Cygwin和Msys。这两种选择各有利弊,这是一个广泛讨论的话题,我不打算深入探讨。
顺便说一句,我个人使用的是 Msys,除了某些软件包的典型 Windows 不兼容问题外,从未遇到过任何问题。