在linux Ubuntu14.04下移植Qt程式至QNX6.5.0作業系統
前言
本文內容主要為如何在Ubuntu14.04上將Qt程式移植到裝有Qnx6.5.0作業系統的嵌入式裝置(x86架構)上,以供有需要的開發者參考。
準備工作
1.在Ubuntu上安裝Qt4.7.1;
3.下載這兩個壓縮包:qt_qnx_host_linux_x86.tar.gz,qt_qnx_targets.tar.gz(可以向你們的QNX經銷商索要)
具體移植過程
1.編寫一個Qt小程式,能夠編譯並執行在linux中:
2.開啟linux終端,進入超級使用者模式,輸入指令:echo “${QNX_TARGET%/target/*}”,定位Momentics IDE的安裝目錄:
3.將qt_qnx_host_linux_x86.tar.gz解壓到Momentics IDE的安裝目錄,例如我的:
4.進入Qt工程資料夾 ,新建一個文字檔案,命名為“Makefile“,然後開啟該文字檔案,輸入如下內容,儲存退出:
LIST=OS CPU VARIANT
MAKEFILE=GNUmakefile
include recurse.mk
## eof
5.在該工程資料夾中,新建名為”nto-arm-le”(針對ARM),”nto-arm-le-v7”(針對ARM)以及 “nto-x86-o”(針對x86)子資料夾:
6.在每個資料夾中,新建一個文字檔案,命名為”GNUmakefile”,然後開啟該文字檔案,輸入如下內容,儲存退出:
ifndef QCONFIG
QCONFIG=qconfig.mk
endif
include $(QCONFIG)
include $(MKFILES_ROOT)/qmake-qt.mk
## eof
7.接下來就是常規編譯:開啟終端進入Qt工程資料夾,依次輸入make clean,make,make install指令,這樣就開始編譯了:
8.開啟三個子資料夾中的任意一個,可以看到編譯後的可執行檔案:
9.以上都是在Ubuntu上進行操作,接下來的步驟就是主要在QNX作業系統上進行。首先將主機和目標機通過網線連線設定同一網段,然後在QNX作業系統上新建一個使用者,具體設定可以參考我以前寫的部落格:
10.在Ubuntu中,將qt_qnx_targets.tar.gz通過ftp傳送至QNX中(簡單,就不貼圖了),然後在QNX上,開啟終端,進入壓縮包所傳至的資料夾,輸入指令: # tar xvf qt_qnx_targets.tar.gz -C/usr/qnx650,將檔案解壓至/usr/qnx650。
11.繼續在QNX中,將解壓後將/usr/qnx650/target/qnx6/usr以及/usr/qnx650/target/qnx6/x86/usr中的二進位制檔案拷貝到QNX的/usr目錄下,完成對目標機的配置:
# cp -r /usr/qnx650/target/qnx6/usr/* /usr
# cp -r /usr/qnx650/target/qnx6/x86/usr/* /usr
12.繼續在QNX中,編輯/root/.profile配置檔案,輸入指令vi /etc/profile,然後在檔案末尾輸入:
export QWS_DISPLAY=qnx
export QWS_KEYBOARD=qnx
export QWS_MOUSE_PROTO=qnx
export XDG_CONFIG_HOME=/root
export QMAKESPEC=unsupported/qws/qnx-i386-g++
13.回到Ubuntu中,通過ftp將Qt工程拷貝到QNX系統上,然後換到QNX上,進入Qt工程所傳至的資料夾,找到編譯的可執行檔案,開啟終端,輸入如下指令修改許可權(簡單,就不貼圖了):chmod 777 ./test1。
14.點選下圖的紅框進行操作,進入QNX文字模式:
15.此時進入文字模式。首先回車一下,輸入login為root,password為空,然後輸入指令:
/usr/photon/bin/devi-hid –Pr mouse
16.進入到Qt工程資料夾所在目錄,找到可執行檔案,輸入:./test1 -qws執行程式,成功:
17.輸入Ctrl+c退出Qt程式。
PS:雖然步驟16能夠執行Qt程式,但會發現執行Qt程式後,鍵盤不能夠輸入字元,不過可以通過寫指令碼的方式讓Qt程式執行時能夠使用鍵盤。在步驟15,輸入完root和空密碼後,進入Qt程式所在資料夾,用vi建立一個指令碼命名為do.sh,指令碼內容:
#/bin/sh
chmod +x ./test1
/usr/photon/bin/devi-hid –Pr kbd mouse
./test1 -qws
儲存退出指令碼後,給該指令碼加可執行許可權:
#chmod +x ./do.sh
最後執行該指令碼,這樣就可以在Qt程式中使用鍵盤了:
但是這把用Ctrl+c退出程式系統無反應,所以用滑鼠點選右上角的關閉“X”退出到文字模式,但是進入到文字模式後用鍵盤輸入無反應,這個問題先放著,等以後解決。
以上。