【问题标题】:Can I run C and C++ on any platform?我可以在任何平台上运行 C 和 C++ 吗?
【发布时间】:2012-11-18 06:46:57
【问题描述】:

如果我用 C 或 C++ 编写,例如:Windows。是否可以保证我可以在任何其他操作系统(例如 Mac OS、Linux、类 Unix 系统)上编译和运行它?那么,这是否意味着 C 或 C++ 是跨平台语言?

【问题讨论】:

标签: c++ c operating-system


【解决方案1】:

对于 Mac OSX、Linux,当然还有 Windows,您可以编写和编译 C++。根据个人经验,我一直认为 Windows 最适合 C++ 使用,紧随其后的是 Linux,Max OSX 远远落后。根据我的经验,编译器往往是喜怒无常的,或者是因为支持社区更适合 Windows 上的 C++,或者因为它自然更适合编程,所以我在使用 Windows 时遇到的问题总是较少。虽然我将它标记为第二名,但我在 Linux 方面没有太多经验。

编辑:您说“保证”运行和编译。对于基本的 C++ 来说,肯定是这样,但一些更高级的特性可能在不同平台上有不同的支持。

【讨论】:

    【解决方案2】:

    如果您直接访问任何 Windows API,它将无法在其他平台上运行(甚至编译)。如果您使用间接访问正确 API 的 标准 函数,或者如果您添加 #ifdef guards 并访问正确的平台 API,那么答案是 更好。前者应该是跨平台的。后者将在您的代码所迎合的平台上运行。

    【讨论】:

      【解决方案3】:

      不......有许多许多平台的 C 和 C++ 编译器,但是不同的编译器有自己的怪癖,并且它们链接到的库在不同的平台上完全不同。 Mozilla 制定了关于使用哪些功能以及避免哪些功能以使您的软件跨平台的指南。

      像 cygwin 这样的环境有助于在 windows *nix 中实现跨平台兼容性。

      您可以编写不依赖平台库的标准 C 库,这些库非常可移植

      【讨论】:

        【解决方案4】:

        如果您编写的 C 或 C++ 程序严格遵守某个标准,那么该程序应该可以在任何提供符合该标准的工具链的平台上运行。从这个意义上说,C 和 C++ 是跨平台语言。

        【讨论】:

        • 我认为,重要的是要弄清楚,人们可能想要在程序中做的许多事情都需要可能不是跨平台的库。必须好好挑选你的图书馆。
        • +1。根据您仔细选择的词语,您会成为一名优秀的律师。
        • 那么,如果我有两个相同的编译器在不同的操作系统上运行,那么无论什么操作系统它都应该可以工作,对吧?
        • @user963241 除非您坚持使用在两个平台上都可用的一组库和(重要的)系统 APIa。如果您尝试在 Windows 或 Mac OS 上编写“本机”应用程序,您将不得不使用在其他平台上不可用的 API。
        • 我的回答的重点是,虽然它所说的是严格正确的,但措辞谨慎的一组条件使其对于典型的实际应用程序并不是那么有用。编写严格符合各种平台上可用的任何标准的有用的实际应用程序是非常困难的。几乎所有实际应用都需要针对不同平台进行某种调整。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        • 2014-05-04
        • 2017-08-16
        • 2010-12-15
        相关资源
        最近更新 更多