【问题标题】:Can one compile Windows code on Linux?可以在 Linux 上编译 Windows 代码吗?
【发布时间】:2017-02-10 23:02:51
【问题描述】:

我有一个 Ubuntu 服务器(带有 VPN 和 samba 共享),用于存储我的所有项目文件等。

我不想将我计算机上的文件备份到服务器上,而是直接使用服务器上的文件。

但是,当我想在 Windows 上构建一个项目时,它变得非常慢,因为我基本上必须通过互联网传输 Visual Studio 创建的所有文件,这样我才能构建项目。

核心概念是:

  • 打开服务器上的文件并使用它们(即,一次保存一个文件足够快,不会产生影响)。
  • 在 Linux 上编译代码(也许编写一个带有套接字的 VS 扩展,告诉服务器进行构建,并且服务器端在构建完成后会发回一条消息,以便 VS 运行和调试程序)。这会好得多,因为我的笔记本电脑与服务器性能相比微不足道。
  • 在 Windows 上使用 VS 运行和调试程序。

到目前为止,我只能找到 this(这不是我想要的,因为它使用 g++,我想要 VC++)和 this(这不是我想要的,因为它正在编译linux并远程执行它)。我正在寻找的是两者的混合体。

远程编译,本地编程和执行。

也会很棒,因为据推测,我可以使用我想要的任何 VC++ 版本和我想要的任何 SDK 构建。所以我基本上可以轻松地在为 Windows 7 和 10 编译之间切换。

我只是想知道:是否有可能实现这一目标?如果是的话怎么办?

【问题讨论】:

  • “在 Windows 7 和 10 的编译之间轻松切换” - 嗯?这是您必须更改的 one 预处理器定义。没有更多的了。
  • @IInspectable 我有 read 否则。
  • 该链接所说的只是您必须在 Windows 7 机器上安装运行时库。但无论您使用什么版本的 Visual Studio,您都必须为 Windows 7 目标执行此操作。 (好吧,除非你回到 Visual Studio 6,但我不推荐它。)你不会通过使用 Visual Studio 2010 for Windows 7 而不是 Visual Studio 2015 获得任何好处。

标签: linux windows visual-studio visual-c++ compilation


【解决方案1】:

无法在 Linux 上直接使用 VC++。 无论如何,要让 Linux 服务器使用 VC++ 进行编译,您可以使用显然适用于旧版本的 wine(请参阅https://appdb.winehq.org/objectManager.php?sClass=application&iId=5766 ) 但在 CLI 环境中设置可能并不容易,并且可能会导致 Microsoft 的许可证问题,或者使用 Windows 虚拟机,这往往会带来一些性能缺陷。

最好的解决方案是使用 GCC (g++),它适用于各种架构和操作系统并支持交叉编译。

【讨论】:

  • 我不记得具体是哪个,但我记得刚开始时遇到了 g++ 的错误,这让我远离它。我想在这一点上我应该可以轻松地处理这些问题。谢谢,我会调查的。
  • @TrisT:使用其他编译器编译时,为 Visual Studio 编写的代码通常无法按预期编译或运行。 Visual Studio 在执行语言规则方面非常宽松。根据语言规范未定义的许多构造将可靠地与 Visual Studio 一起使用(例如 C++ 中的类型双关语)。如果您想成长为一名开发人员并生成更好的代码,使用不同的编译器进行编译几乎可以保证会提出您以前没有考虑过的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 2021-01-29
相关资源
最近更新 更多