4 评论

C++ 的可移植性和跨平台开发[1]:编译器

  在跨平台的开发过程中,很多问题都和编译器有关。因此我们先来聊聊编译器相关的问题。


★编译器的选择


  首先,GCC 是优先要考虑支持的,因为几乎所有操作系统平台都有 GCC 的实现。它基本上成了一个通用的编译器了。如果你的代码在 A 平台的 GCC 能够编译通过,之后拿到 B 平台用类似版本的 GCC 编译,一般也不会有太大问题。因此 GCC 是肯定要考虑支持的。
  其次,要考虑是否支持本地编译器。所谓本地编译器就是操作系统厂商自产的编译器。
  举例来说:
相对于 Windows 的本地编译器就是 Visual C++
相对于 Solaris 的本地编译器就是 SUN 的 CC
  如果你对性能比较敏感或者想用到某些本地编译器的高级功能,可能就得考虑在支持 GCC 的同时也支持本地编译器。


★编译警告


  编译器是程序员的朋友,很多潜在的问题(包括可移植性),编译器都是可以发现并给出警告的。如果你平时注意这些警告信息,可以减少很多麻烦。
  因此俺强烈建议:
1. 把编译器的警告级别调高;
2. 【不要】轻易忽略编译器的警告信息。


★交叉编译器


  从没听说过“交叉编译器”的同学,可以先看“维基百科的介绍”。
  通俗地说,就是在 A 平台上编译出运行在 B 平台上的二进制程序。假设你要开发的应用是运行在 Solaris上,但是你手头没有能够运行 Solaris的 SPARC 机器,这时候交叉编译器就可以派上用场了。一般情况下都使用 GCC 来制作一个交叉编译器,限于篇幅,这里就不深入聊了。有兴趣的同学可以参见“这篇文档”。

  关于编译器的话题,暂时聊到这,后面聊聊关于“语法”的问题。


回到本系列的目录
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2009/01/cxx-cross-platform-develop-1-compiler.html

4 条评论

  1. 啊。。现在觉得 C++ 太 难学了

    回复删除
    回复
    1. 冒牌忠党爱国2023年8月27日 19:29:00

      这是一条跨越14年的评论

      这个博文没什么热度

      删除
    2. 前篇博文搬运工2023年8月28日 03:23:00

      TO 冒牌忠党爱国 看来你也是上古老熟人啦,知道博客以前有忠党爱国。我觉得像这种底热度博文的博客论坛评论区类似处女地,我们要妥善的加以保护,因为博主已经被捕,不可能再发新的博文了。所以我们可以使用的论坛评论区数目是固定的,不会再增长了,以后会越来越少,所以像这种底热度博文的博客论坛评论区类似处女地的地方对于我们以后越来越多增加的评论是会越发弥足珍贵的。

      删除
  2. 什么鬼,评论只有一条,,

    回复删除