【问题标题】:Can i create application in Windows for Linux platform?我可以在 Windows 中为 Linux 平台创建应用程序吗?
【发布时间】: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 相关的这个答案。 stackoverflow.com/a/4144536/3184380
  • 如果我无法在 windows 中为 linux 可执行文件编译 c++ 应用程序。那么,我可以将这些类移动到 linux os 中然后编译它吗?

标签: c++ linux windows sockets


【解决方案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。但是,套餐选择列表中包含很多优惠套餐。我怎么知道我需要什么包。
    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多