Qt跨平台开发
摘要
Ubuntu16.04
交叉編譯工具:arm-linux-gcc-4.3.2.tar.gz
Qt源碼壓縮包:qt-everywhere-opensource-src-4.7.1.tar.gz
開發環境準備篇
一、Ubuntu16.04需要安裝的軟件
安裝 Ubuntu16.04 系統后,需要把站點更新為清華站點
具體的設置過程如下:
右上角小齒輪→System Settings→System→Software & updates
→Ubuntu Software→Download from 選擇站點
→選擇清華站點
→彈出驗證→輸入 root 賬號密碼
→替換為清華的下載點
→apt-get update 更新
1.1 安裝和使用 SSH 軟件(用來進Windows和Ubuntu系統之間文件傳輸)
- apt-get install vim ssh” 安裝 vim 編輯器以及 ssh 工具
1.2 /etc/init.d/ssh restart” 啟動 ssh 服務
1.3 調整配置文件
- “vim /etc/ssh/sshd_config” 打開配置文件
說明:KexAlgorithms可剪裁
#Authentication: LoginGraceTime 120#PermitRootLogin prohibit-password PermitRootLogin yes StrictModes yes1.4 /etc/init.d/ssh restart”命令重啟 ssh 服務 ;安裝相關庫
apt-get install lzop // lzop是開源的壓縮算法框架 apt-get install u-boot-tools apt-get install autoconf // apt-get install automake // apt-get install libtool // 編譯大型軟件的過程中解決了庫的依賴問題 apt-get install libstdc++6 // apt-get install lib32c-dev // apt-get install lib32stdc++6 apt-get install lib32z1 apt-get install lib32ncurses5A、安裝交叉編譯器
root@ubuntu:~# sudo vim .bashrc root@ubuntu:~# sudo vim .bashrc root@ubuntu:~# source .bashrc root@ubuntu:~# arm-none-linux-gnueabi-gcc -vB、編譯觸摸
源碼 tslib-1.4.tar.gz
C、安裝交叉編譯 QtE5.7 庫
root@ubuntu:/home/qishuai/qt/qt_source# vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf root@ubuntu:/home/qishuai/qt/qt_source# ls qt-everywhere-opensource-src-5.7.0 qt-everywhere-opensource-src-5.7.0.tar.gz tslib tslib-1.4.tar.gz root@ubuntu:/home/qishuai/qt/qt_source# cd qt-everywhere-opensource-src-5.7.0 root@ubuntu:/home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0# vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf root@ubuntu:/home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0# ls coin LICENSE.GPLv2 qtactiveqt qtdatavis3d qtlocation qtquickcontrols2 qtsvg qtwebengine README configure LICENSE.GPLv3 qtandroidextras qtdeclarative qtmacextras qtscript qttools qtwebsockets configure.bat LICENSE.LGPLv21 qtbase qtdoc qtmultimedia qtscxml qttranslations qtwebview gnuwin32 LICENSE.LGPLv3 qtcanvas3d qtgamepad qt.pro qtsensors qtvirtualkeyboard qtwinextras LGPL_EXCEPTION.txt LICENSE.PREVIEW.COMMERCIAL qtcharts qtgraphicaleffects qtpurchasing qtserialbus qtwayland qtx11extras LICENSE.FDL qt3d qtconnectivity qtimageformats qtquickcontrols qtserialport qtwebchannel qtxmlpatterns root@ubuntu:/home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0# vi autoconfigure.sh root@ubuntu:/home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0# chmod 777 autoconfigure.sh root@ubuntu:/home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0# ./autoconfigure.shmake前編譯
NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1. Configure with '-qreal float' to create a build that is binary compatible with 5.1.NOTE: -optimized-tools is not useful in -release mode.Info: creating stash file /home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0/.qmake.stash Info: creating super cache file /home/qishuai/qt/qt_source/qt-everywhere-opensource-src-5.7.0/.qmake.superQt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into /opt/qt5.7.0Prior to reconfiguration, make sure you remove any leftovers from the previous build.二、根文件系統
1.配置busybox工具
- 配置busybox的交叉編譯工具 arm-none-linux-gnueabi-
- 設置最終生成的二進制文件安裝到system目錄下
- 編譯busybox執行make命令后,開始編譯Busybox命令
- 編譯完成后,用make install 安裝二進制到…/system目錄
- 文件系統還需新建 dev etc lib mnt proc sys tmp var 文件夾
- etc 目錄下 創建eth0-setting文件和init.d文件夾、passwd文件、profile文件
IP=192.168.1.230
Mask=255.255.255.0
Gateway=192.168.1.1
DNS=192.168.1.1
MAC=08:90:90:90:90:90
-
在init.d文件夾下建立ifconfig-eth0文件和rcS文件
-
etc目錄下再建rc.d文件夾,在此目錄下建立init.d文件夾,在init.d文件目錄下建立netd文件
-
拷貝編譯器里面的庫到lib目錄
-
在var目錄下建立lib lock log run tmp
-
解壓打包工具:Linux_tools.tgz
執行:make_ext4fs -s -l 314572800 -a root -L Linux system.img system
生成根文件系統
三、交叉編譯QT源碼
1.在Ubuntu上編譯Qt庫
- 新建文件夾,解壓 qt- everywhere-opensource-src-5.7.0.tar.gz
- 進入qt- everywhere-opensource-src-5.7.0文件夾,使用命令 vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
添加或修改qmake.conf文件。
- 使用 vi autoconfigure.sh新建腳本, 執行腳本命令 ./autoconfigure.sh,在/opt文件夾下生成qt-5.7.0 ; 把 Qt 庫安裝到開發板的文件系統, 并生成鏡像。
- 生成可以下載的system.img,需要工具 mkimage --> linux_tools.tgz
- 新建linux+Qt文件夾,copy根文件系統
- 編譯生成的“qt5.7.0”文件和“tslib1.4”觸摸文件到 …/root/opt目錄下
- 將字庫文件“fonts”拷貝到“opt/qt5.7.0/lib/”目錄下。 將“libstdc.tar.gz”拷貝到“./lib”解壓, 并輸入命令: ln -s libstdc++.so.6.0.19 libstdc++.so.6
- 修改環境變量 vim etc/profile
- 修改開機啟動腳本vi etc/init.d/rcS, 注釋掉 /bin/qt4 &, 并加上 /bin/qt5.7 &
- 在linux+Qt文件目錄下輸入:
make_ext4fs -s -l 314572800 -a root -L linux system.img root
附錄
1.解壓命令
tar -xvf busybox-1.21.1.tar.bz2
2.內核編譯配置命令
make menuconfig
3.文件創建命令
mkdir
4.創建文件命令
vi eth0-setting
5.文件權限修改
chmod 755
6.copy命令
lib# cp /user/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* ./
總結
- 上一篇: 初中数学抽象教学的案例_初中数学教学案例
- 下一篇: smartupload java_jav