【问题标题】:C++ Code for Windows & Linux适用于 Windows 和 Linux 的 C++ 代码
【发布时间】:2015-02-21 23:21:28
【问题描述】:

首先,我对编程很陌生,但对它很感兴趣。我已经成功地为 Windows 构建了一个 C++ 控制台程序,它是一个简单的数据库程序,可以编辑/删除/输入条目。

我越来越少依赖 Windows 来处理日常事务。我有一台旧的 HP 上网本,它无法与 Windows 一起使用,但我安装了一个 Linux 发行版,它就像一个魅力一样工作。

由于我有时确实使用 Windows,并且已经构建了在 Windows 中使用的程序,我想知道是否可以使用相同的代码来编译 Linux 程序?我可以使用 WINE 来运行它,但更喜欢运行特定于 Linux 的东西。是否可以使用相同的代码或者我必须制作另一个 Linux 版本?

【问题讨论】:

  • 这高度特定于代码本身,采用独立于平台的标准,以及您在构建前者时拥抱后者的凶猛程度。如果应用程序是 GUI 的,除了 Qt 等独立于平台的工具包之外,您可能会不走运。如果它是基于控制台的,并且您坚持遵守语言标准(包括其标准库),并且避免使用特定于平台的功能,那么您就有很大的机会。

标签: c++ linux windows console


【解决方案1】:

我会假设,由于您是编程新手,因此您没有付出非凡的努力来使您的代码可跨平台移植。这需要大量的技能,尤其是在您访问数据库等外部资源时。所以答案是你可能不得不为 Linux 重新编写,特别是数据库接口。

【讨论】:

    【解决方案2】:

    我猜你希望你的 C++ 代码在 Linux 和 Windows 上都可以编译。为此,您需要特定于操作系统的编译器(Linux 和 Windows 上的编译器不同)。

    我想知道是否可以使用相同的代码来编译 Linux 程序?

    编译您的 C++ 代码的程序称为compiler。在 Linux 上,您将使用GCC 作为g++ 命令(您甚至可以使用MELT 进行自定义,但这不适用于新手),或者Clang/LLVM 作为clang++ 命令。您将使用像make 这样的构建器(请参阅here 了解原因,以及this 示例)。请务必安装最新版本(至少在 2015 年初安装 GCC 4.9 或 Clang 3.5)以获得良好的 C++11 支持。专注于学习 C++11(或 C++14)而不是一些早期的变体(所以使用 C++11 编译器)。

    我不了解 Windows,所以我不能推荐任何好的 C++ 编译器(但我听说过 MinGWCygWinMicrosoft Visual C++;还可以查看最近的 Clang... )。

    您可能对QtPOCO 等跨平台C++ 框架库感兴趣(也许还有Sqlite 用于数据库相关的东西)。他们将帮助您编写一些可在两个系统上使用的 C++ 代码(重新编译后)。

    顺便说一句,您始终可以使用预处理器指令封装您的系统特定代码 à la #if LINUX ;注意将所有操作系统特定(或操作系统相关)代码放在几个源文件中。

    您可能会喜欢并喜欢 Linux,并且会在几个月后更喜欢只为 Linux 编写代码(然后您将在所有机器上安装 Linux),这可能会发生(我希望对您如此)。顺便说一句,研究现有的free software 的源代码你喜欢并在Linux 上使用。这会教给你很多东西。

    我给herehere 的建议今天在Linux 上编码时仍然适用。另请阅读有关portingportabilityAdvanced Linux Programming 的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 2022-10-01
      • 2022-11-21
      • 2010-09-24
      • 2021-08-01
      • 1970-01-01
      相关资源
      最近更新 更多