C及C++标准与QT版本介绍

发布于:2024-04-25 ⋅ 阅读:(19) ⋅ 点赞:(0)

一.软件规范及组织

1.GNU

GNU是“GNU's Not Unix”的缩写,是GNU计划(GNU Project)的官方名称,由理查德·斯托曼在1983年9月27日公开发起。

GNU计划的目的是创建一套完全自由的操作系统。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都受到GNU通用公共许可证(GNU General Public License,简称GPL)的保护。

2.GPL

GPL全称是GNU General Public License,中文名为GNU通用公共许可证。

它并非由自由软件基金会(FSF)所发表,亦非GNU计划的一部分,不过我们常将它视为GNU计划下的主要许可证。GPL允许任何人在遵守其原则的前提下自由获取、修改、发布和使用该许可软件及软件的衍生作品。

3.POXIS(Portable Operating System Interface)

POXIS是一种操作系统接口标准,全称为“可移植操作系统接口”。

它最初由IEEE组织制定,目的是为了使不同的操作系统之间可以互相兼容。POSIX标准定义了一系列API(应用程序接口)和命令行工具,这些API和工具规定了操作系统应该提供哪些功能,并规定了这些功能的调用方式和行为。

POSIX标准包含多个部分,主要涵盖了文件管理、进程控制、用户权限、系统调用等方面。

跨平台特性:为了保证操作系统 API 的相互兼容性制定了 POSIX 标准。目前符合 POSIX 标准协议的操作系统有:UNIX、BSD、Linux、iOS、Android、SylixOS、VxWorks、RTEMS 等。

Windows操作系统支持POSIX。虽然Windows操作系统并不完全符合POSIX标准,但可以通过一些工具和库来实现POSIX兼容性。这些工具包括Cygwin、MinGW或MSYS等,它们提供了一些POSIX函数和命令,

使得在Windows上开发和运行POSIX兼容的应用程序成为可能。

https://pubs.opengroup.org/onlinepubs/9699919799/

4.System V

System V是由AT&T开发的Unix操作系统的一个版本,在1983年首次发布。它是Unix操作系统众多版本中的一支,有时也被简称为“SysV”。

System V也是操作系统进程间通信的标准,它提供了三种指定的进程间通信方式:System V消息队列、System V共享内存以及System V信号量。

二.C语言与C++标准

1.C语言标准:

C89/ANSI C (1989): 这是第一个由ANSI(美国国家标准协会)制定的C语言标准,也被称为C90。它定义了C语言的基本语法和语义,为后续的C语言版本奠定了基础。

C95 (ISO/IEC 9899:1995): 这是对ISO C90标准的一次修订,增加了一些新特性,例如支持多字节字符等。

C99 (ISO/IEC 9899:1999): 由ISO/IEC在1999年采纳的新版C语言标准。它新增了许多特性,如内联函数、变长数组、严格类型别名、具名结构初始化等。这个版本在很多现代编译器和系统中都得到了广泛的支持。

C11 (ISO/IEC 9899:2011): 是C语言的另一个重要版本,由ISO在2011年制定。它增加了一些新的语法和库函数,同时修复了C99中的一些缺陷。

C17 (ISO/IEC 9899:2018): 于2018年发布,是当前最新的C语言标准。这个版本主要修复了C11标准中的一些问题,并没有引入新的语言特性。

2.C++标准:

C++98 (ISO/IEC 14882:1998): 这是C++的第一个国际标准版本,于1998年发布。它奠定了C++语言的基础,包含了面向对象编程、模板等核心特性。

C++03 (ISO/IEC 14882:2003): 这个版本是在C++98之后的修订版本,于2003年发布。与C++98相比,C++03的变化相对较小,主要是一些小的改进和缺陷修复。

C++11 (ISO/IEC 14882:2011): C++11是C++语言的一次重大更新,于2011年发布。它引入了许多新特性,如自动类型推导(auto关键字)、范围基于的for循环、lambda表达式、智能指针、右值引用和移动语义等。C++11的推出极大地提高了C++的编程效率和代码的可读性。

C++14 (ISO/IEC 14882:2014): C++14是在C++11之后的另一个重要版本,于2014年发布。它主要提供了一些C++11的改进和扩展,以及一些新的库函数和特性。

C++17 (ISO/IEC 14882:2017): C++17是C++语言的又一次重大更新,于2017年发布。它引入了许多新特性,如结构化绑定、if constexpr、std::optional、std::variant等,进一步增强了C++语言的表达能力和编程效率。

C++20 (ISO/IEC 14882:2020): C++20是最新的C++标准,于2020年发布。它带来了许多新的语法和库特性,如三向比较运算符、concepts(概念)、协程、ranges库等。C++20进一步推动了C++语言的现代化和易用性。

三.QT版本与选择:

1.稳定版本

Qt4: 4.8.7 4.X 系列终结版本

Qt5 : 5.6 LTS 长期支持版本

Qt5: 5.9 LTS 长期支持版本

Qt5: 5.12 LTS 长期支持版本

Qt5: 5.15 LTS 长期支持版本

2.Qt版本选择

Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(嵌入式推荐用Qt4.8,打包的程序小)

Qt5.6.3最最后支持xp系统的长期支持版本,Qt5.7.0是最后支持xp系统的非长期支持版本。

Qt5.12.3是最后提供mysql数据库插件的版本。

Qt5.15系列是最后支持win7的版本。

Qt5.15.2是最后样式表性能最高的版本。是2020.11.13日发布,也是QT5的最后一个版本

Qt Quick 3D模块是从Qt5.14开始提供预览版,Qt5.15正式加入。

综合以上,QT5优先使用Qt5.15.2版本。

3.QT6版本:

6.2.0  目前可以在线安装的最低版本的QT6,也是长期支持版本,2021-9-26发布

6.7.0  当前最新版本,也是长期支持版本  2024-3-25日发布

建议:如果是新项目且无特殊要求,建议用最新版本的QT6,毕竟这是趋势,而且很多模块接口QT5和QT6是有很大区别的,将来迁移会比较困难

注意:Qt6不支持Windows 7