关于Qt国产化系统开发的几点总结
随着国产化的兴起,各种国产系统和国产数据库等逐渐进入开发者的世界,科普几个要点。
- 中标麒麟 neokylin 基于 fedora。
- 银河麒麟 kylin 早期版本比如 V2 基于 freebsd,新版本 V4、V10 基于 ubuntu。
- 优麒麟 ubuntukylin 就是 ubuntu 的汉化版本。
- deepin 基于 debian。
- uos 基于 deepin 或者说是 deepin 的商业分支。
- ubuntu 基于 debian。
- linux 界主要分两种内核系统,debian(ubuntu、deepin、uos、银河麒麟 kylin 等)和 redhat(fedora、centos、中标麒麟 neokylin、中兴新支点 newstart 等),分别对应 apt-get 和 yum 安装命令。绝大部分的 linux 系统都基于或者衍生自这两种系统。
- 理论上基于同一种系统内核的,在其上编译的程序可以换到另外的系统运行,前提是编译器版本一致,比如都是 gcc4.9,在 ubuntu14.04 64 位用 gcc4.9 编译的 Qt 程序,是能够在 uos 64 位上运行的。
- 高版本编译器的系统一般能够兼容低版本的,比如你用 gcc4.9 编译的程序是能够在 gcc7.0 上运行,反过来不行。
- 意味着如果你想尽可能兼容更多的系统,尽量用低版本的编译器编译你的程序,当然要你的程序代码语法支持,比如 c++11 就要从 gcc4.7 开始才支持,如果你的代码用了 c++11 则必须至少选择 gcc4.7 版本及以上。
- 用 Qt 编写 linux 程序为了发布后的可执行文件可以兼容各种 linux 系统,只要在这两种内核(debian、redhat)的系统上用低版本的编译器比如 gcc4.7 编译 qt 程序发布即可。
- 2022-1-27 补充:根据 Qt 官方安装包,发现基于 redhat 的 gcc4.9 编译器发布的,通用各种 linux 系统(亲测 ubuntu 各个版本、fedora、centos、deepin、uos、银河麒麟 kylin、中标麒麟 neokylin、中兴新支点 newstart 等),自己按照这个版本也亲测打包发布了亲测可用,我擦,redhat 系统的也可以在 debian 系统跑。
- 2022-2-10 补充:debian 上静态编译的程序也可以在 redhat 系统跑,可能静态编译去掉了很多依赖吧。
- 国产人大金仓数据库用的是 postgresql 数据库改的,意味着你在 Qt 中用 postgresql 数据库插件也是能够连接到人大金仓数据库的。
- 以上未必完全正确,欢迎各位指正。