1. 程式人生 > >在linux Ubuntu14.04下移植Qt程式至QNX6.5.0作業系統

在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作業系統上新建一個使用者,具體設定可以參考我以前寫的部落格:

http://blog.csdn.net/wangqingchuan92/article/details/78456302

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”退出到文字模式,但是進入到文字模式後用鍵盤輸入無反應,這個問題先放著,等以後解決。

以上。