1. 目的
qt4升级qt5之后,QString::toDouble方法不依赖于locale,导致很多欧洲国家(e.g.Germany,使用,作为小数点)转换有问题。 因此修改qt库,在QString::toDouble中直接调用QLocale的toDouble方法。这样就需要编译qt库,qstring.cpp位于qtbase工程下,最终生成libQt5Core.so.5.15.0, 理论上只要替换这个库就可以 (实际在Linux上有问题, windows 上可以。)。
2. 编译安装
2.1 SUSE SEL-15 x86_64平台
2.2.1. 安装依赖
README
因为Src/qtbase下没有README文件,所以,查看Src下的README文件,给出依赖 Perl5.8或更高版本,Python2.7或更高版本,支持C++11的C++编译器参。考http://wiki.qt.io/Get_The_Source 中的 Setting up your machine–> Qt for X11 Requirements https://doc.qt.io/qt-5/linux-requirements.html 还需以下依赖库:
libxcb 1.11 libXrender libxcb-render libxcb-render-util libxcb-shape libxcb-randr libxcb-xfixes libxcb-sync libxcb-shm libxcb-icccm libxcb-keysyms libxcb-image libxkbcommon libxkbcommon-x11 libfontconfig libfreetype libXext libX11 libxcb libX11-xcb libSM libICE libglib-2.0 libpthread
libatspi opengl flite1-dev libspeechd-dev speech-dispatcher
根据wiki,https://wiki.qt.io/Qt_5.15_Tools_and_Versions 针对SLES15 x86_64:
- OpenSSL 版本必须是1.1.1d 否则不能编译,当前版本是1.1.0i, 需更新版本,为了不影响系统对1.1.0i的依赖,最好安装在指定目录,用的时候指定就可以。具体操作见博客