本文所說為銀河麒麟V10系統,而非優麒麟。
銀河麒麟V10內置有不完整的Qt4.8.7和Qt5.6庫,麒麟軟件商店可以下載.3.1。
本人所使用的電腦是arm架構的,和amd架構的電腦編譯環境有所出入。
不清楚自己架構的小伙伴可以輸入dpkg --print- 查看。
Qt4支持的web控件為;
Qt5.0-5.5支持的web控件為;
Qt5.6以上支持的web控件為。
銀河麒麟Qt4庫中有模塊,但動態庫和頭文件不完整;Qt5.6的庫中莫名有一個卻沒有,導致相當于啥都沒有,我至今不理解為啥。Qt5的我沒成功裝上,就不贅述了,下面進入正題。
前提:
預裝qt4.8.7 ; 4.3.1 ; 提前準備對應版本的qt源碼包(qt---src-4.8.7.tar.gz)。如果是qt4其他版本,只需要準備對應版本的源碼包。
qt官方下載地址(就是可能會很慢):此網址還有其他版本的下載
https://download.qt.io/archive/qt/4.8/4.8.7/
步驟:
1.在/usr/lib/-linux-gnu/查看是否存在 .so 文件。這是一個必要的庫,但是系統內的庫可能不叫這個名字而叫 .so.4.10.2之類的名字c 文件夾選擇控件,導致編譯時檢索不到。
如果沒有,則需要創建一個軟鏈接
//此處最后一層目錄為我的編譯器目錄,可根據自己電腦的編輯器版本更換
ls /usr/lib/aarch64-linux-gnu/
//創建軟鏈接
sudo ln -s /usr/lib/aarch64-linux-gnu/libQtWebKit.so.4.10.2 /usr/lib/aarch64-linux-gnu/libQtWebKit.so
2.cd進入存放源碼壓縮包的文件夾,解壓qt源碼包(源碼包在什么目錄下不重要)
tar -zxvf qt-everywhere-opensource-src-4.8.7.tar.gz//哪個有效用哪個
tar xvJf qt-everywhere-opensource-src-4.8.7.tar.gz
3.繼續在此文件夾c 文件夾選擇控件,在將源碼包內的和APi頭文件拷貝到Qt4庫的安裝目錄的目錄下。
sudo cp -r qt-everywhere-opensource-src-4.8.7/include/QtWebKit /usr/include/qt4/
sudo cp -r qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebKit/qt/Api/* /usr/include/qt4/QtWebKit/
在此說明一下為什么拷這兩個文件夾:內置的 Qt4 文件夾不包括 文件夾,也就是說 缺少相應的.h文件。而.h文件不需要編譯,我們只需要從對應版本的源碼包拷貝就行了。但是源碼包里 /文件夾里的頭文件長這樣:
簡直就是在說,其實我是Api的臥底
4.打開,工具-選項-構建與運行-編譯器
新建GCC C和GCC C++ 編譯器路徑分別為/usr/bin/gcc 和/usr/bin/g++
名稱修改利于辨認,點擊應用
5.構建套件,C和C++編譯器選擇為新建的兩個編譯器,QT版本選擇4.8.7,確定
編譯
由于qt4所對應的菜單欄沒有,所以需要在程序外設置,(在菜單欄添加控件的方法我也在尋找,如果找到了會修改這一段文字)
先用建立一個窗口,調整好位置大小,然后保存文件關閉軟件。
在工程目錄下找到對應的.ui文件,用文本編輯器打開,將代碼中對應的 修改為
在工程目錄下執行
qmake -r name.pro
//name指工程文件名字
make
即可生成可執行文件,窗口也被改成web窗口了