C++的可移植性和跨平台开发
概述 今天聊聊 C++ 的可移植性问题。如果你平时使用 C++ 进行开发,并且你对 C++ 的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。 C++ 的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很多内容。鉴于本人能力、精力都有限,只能介绍每一个方面最容易碰到的问题,供大伙儿参考。 后面我会分别从编译器、 C++ 语法、操作系统、第三方库、辅助工具、开发流程等方面进行介绍。 编译器 在跨平台的开发过程中,很多问题都和编译器有关。因此我们先来聊聊编译器相关的问题。 编译器的选择 首先, GCC 是优先要考虑支持的,因为几乎所有操作系统平台都有 GCC 可用。它基本上成了一个通用的编译器了。如果你的代码在 A 平台的 GCC 能够编译通过,之后拿到 B 平台用类似版本的 GCC 编译,一般也不会有太大问题。因此 GCC 是肯定要考虑支持的。 其次,要考虑是否支持本地编译器。所谓本地编译器就是操作系统厂商自产的编译器。例如:相对于 Windows 的本地编译器就是 Visual C++ 。相对于 Solaris 的本地编译器就是 SUN 的 CC 。如果你对性能比较敏感或者想用到某些本地编译器的高级功能,可能就得考虑在支持 GCC