我可以在 Windows 中为 Linux 平台创建应用程序吗?

Posted

技术标签:

【中文标题】我可以在 Windows 中为 Linux 平台创建应用程序吗?【英文标题】:Can i create application in Windows for Linux platform? 【发布时间】:2014-02-14 04:17:40 【问题描述】:

我在 C#.Net 编程方面有大约 4 年的经验,我正在开发一个客户端服务器应用程序。服务器应用程序将安装在 CentOS 上,客户端应用程序将安装在 Windows 操作系统上。但是,我对 linux 平台上的 c++ 编程知之甚少。所以,我的问题是我可以在 Windows 操作系统中创建一个控制台应用程序并为 linux 平台编译它。没有必要在 Windows 上编译它。但是,它应该在linux平台上执行。我是linux编程的新手。 目前我正在使用 TC++ 编辑器。我可以使用 Visual Studio 2010 为 linux 平台构建服务器应用程序吗? 如果还有其他方法,请建议我。 谢谢。

【问题讨论】:

可以在windows中安装cygwin,在cygwin中编译应用程序。代码应该可以在 linxu 中运行(大多数情况下) 不,不会! Cygwin 下可用的大多数编译器将创建 Windows 可执行文件(您可以在 Cygwin 下运行),而不是 Linux 可执行文件。 我以前用过Mono编译器。但是,它会创建 Windows 可执行文件,并且只能在 MONO 控制台下运行。我认为 Cygwin 和 MONO 是一样的。我还阅读了与 cygwin 相关的这个答案。 ***.com/a/4144536/3184380 如果我无法在 windows 中为 linux 可执行文件编译 c++ 应用程序。那么,我可以将这些类移动到 linux os 中然后编译它吗? 【参考方案1】:

如果您愿意,可以用 C# 开发客户端,用 C++ 开发服务器。考虑到与 C# 不同的是,还没有标准套接字库,您必须依赖系统调用或其更高级别的包装器(如 boost)。 我必须告诉你,Windows 使用 BSD 套接字(它自己的版本,但有一些修改),因此通过一些预处理器检查,你可以使你的应用程序可移植。

在您的情况下,我建议您使用boost.asio,它将为您隐藏所有低级内容。它甚至是跨平台的。

【讨论】:

【参考方案2】:

也许你可以使用 VS 作为编辑器;确保不包含任何特定于 Windows 的库;可以选择使用 cygwin 并进行交叉编译。检查链接 How to cross compile from windows g++ cygwin to get linux executable file

我想这会更痛苦。最好使用 Virtual Box --> linuxMint/Ubuntu + Eclipse 和 C++ 插件或其他一些 C++ 编辑器...

【讨论】:

谢谢亚历克斯。现在我正在安装cygwin。但是,套餐选择列表中包含很多优惠套餐。我怎么知道我需要什么包。

以上是关于我可以在 Windows 中为 Linux 平台创建应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows中为Visual Studio项目创建Debian安装包?

如何在 Microsoft Teams 中为 @提及创建子组

有人可以帮我在pygame中为扑克游戏创建一副纸牌吗

在 C++ 中为 Windows CE 在 Linux 中开发

如何在windows中为要在linux中执行的.sh文件分配执行权限

如何在 Linux 或 Windows 中为 OS X 编译?