官术网_书友最值得收藏!

2.2 搭建Linux下的Qt開發環境

Qt最大的特點就是跨平臺,在Linux下開發Qt程序也是一線開發中的常事,所以要學會在Linux下搭建Qt開發環境。本章我們將在CentOS 7下搭建Qt開發環境。建議初學者在虛擬機中安裝CentOS 7,安裝完畢后做好快照,這樣即使安裝Qt失敗,也能恢復到CentOS 7剛安裝完的狀態。

2.2.1 準備虛擬機Linux

要開發Linux程序,前提是需要一個Linux操作系統。通常在公司中都會有一臺專門的Linux服務器供大家使用,自己學習時則不需要這樣,可以使用虛擬機軟件(比如VMware)來安裝一個虛擬機中的Linux操作系統。

VMware是大名鼎鼎的虛擬機軟件,通常分為兩種版本:工作站版本VMware Workstation和服務器客戶機版本VMware vSphere。這兩種軟件都可以在其中安裝操作系統作為虛擬機操作系統,但筆者用得較多的是工作站版本,供單人在本機使用。VMware vSphere通常用于企業環境,供多個人遠程使用。通常,我們把自己真實PC上安裝的操作系統叫宿主機系統,VMware中安裝的操作系統叫虛擬機系統。

1. 在VMware下安裝Linux

要開發Linux程序,往往先要在虛擬機中安裝Linux操作系統,然后在這個虛擬機的Linux系統中編程和調試Linux程序,也可以在宿主機系統(比如Windows)中進行編寫程序,然后傳到Linux中進行編譯。有了虛擬機的Linux系統,開發的靈活性比較大。實際上,不少一線開發項目師都是在Windows下閱讀和編輯程序代碼,然后放到Linux環境中編譯和運行,這種開發方式的效率還不低!

這里我們采用的虛擬機軟件是VMware Workstation 12。在安裝之前要準備Linux安裝映像文件,可以從網上直接下載Linux操作系統的ISO文件,也可以通過UltraISO等軟件從Linux系統光盤制作一個ISO文件,制作方法是在菜單上選擇“工具→制作光盤映像文件”。

建議直接從網上下載一個ISO文件,筆者就從烏班圖官網(ubuntu.com/)下載了一個64位的ISO,下載下來的文件是ubuntu-18.04.3-desktop-amd64,文件大小大概有2GB。用其他Linux發行版本也可以,如Redhat、Debian、Fedora等,不過建議大家和筆者選擇的Linux發行版本一樣,尤其是初學者。

ISO文件準備好了以后,就可以通過VMware來安裝Linux了。打開VMware Workstation,然后參照下面幾個步驟操作即可。

(1)在VMware Workstation(筆者采用的版本:12.5.7 build-5813279)上選擇菜單“文件→新建虛擬機”,如圖2-72所示。

(2)單擊“下一步”按鈕,出現“安裝客戶機操作系統”對話框,選中“稍后安裝操作系統”單選按鈕,如圖2-73所示。

圖2-72

圖2-73

(3)單擊“下一步”按鈕,出現“選擇客戶機操作系統”界面,選擇客戶機操作系統為Linux、版本為“Ubuntu 64位”,如圖2-74所示。

(4)單擊“下一步”按鈕,出現“命名虛擬機”界面,在這里輸入虛擬機名稱為ubuntu-1804,位置為E:\vm,如圖2-75所示。

圖2-74

圖2-75

注意,要確保選擇的磁盤容量大一些,比如有空閑空間30多吉字節(GB)。然后單擊“下一步”按鈕,出現“指定磁盤容量”界面,保持默認設置,如圖2-76所示。

(5)單擊“下一步”按鈕,出現“已準備好創建虛擬機”界面,在該界面上單擊“完成”按鈕,此時將重新回到VMware的ubuntu-1804界面中,再單擊“編輯虛擬機設置”選項,如圖2-77所示。

圖2-76

圖2-77

(6)出現“虛擬機設置”對話框,在該對話框上選擇“硬件”選項卡,然后在左邊設備列表里選擇CD/DVD(SATA),接著在右邊“連接”選項組中選中“使用ISO映像文件”單選按鈕,單擊“瀏覽”按鈕,選擇磁盤上的ubuntu-18.04.3-desktop-amd64.iso,如圖2-78所示。

圖2-78

建議把內存調整為2GB(如果計算機中的物理內存足夠大),單擊圖2-78中的“內存”即可出現調節按鈕。然后單擊“確定”按鈕,重新回到VMware的ubuntu-1804界面中,此時單擊“開啟此虛擬機”選項,而后就會正式開始安裝(密碼暫設為123456),安裝過程如圖2-79~圖2-85所示。

圖2-79

圖2-80

圖2-81

圖2-82

圖2-83

圖2-84

圖2-85

2. 啟用root賬戶

剛安裝好的ubutun18是不啟用root賬號的,這對我們以后操作會造成不少麻煩,因為有權限的問題。對于學習者自己的本機系統而言,完全可以使用root賬戶登錄并操作系統。

啟用root賬戶的基本步驟如下:

(1)使用命令sudo passwd root設置root的密碼。在桌面上右擊,在彈出的快捷菜單中選擇“打開終端”命令,然后在終端窗口中輸入命令“sudo passwd root”,接著輸入tom賬戶的密碼和要設置的root賬戶的密碼,如圖2-86所示。

其中,密碼都輸入123456。

(2)使用su root來測試是否可以進入root賬戶,如果出現#,則說明已經成功設置好root賬戶的密碼,如圖2-87所示。

圖2-86

圖2-87

其中,密碼輸入123456,這個密碼是我們上一步為root賬戶設置的密碼。現在我們處于root權限下,可以修改一些文件了。

(3)進入/etc/pam.d/目錄,使用gedit gdm-autologin命令來編輯這個文件,將文件中的“auth required pam_succeed_if.so user != root quiet_success”注釋掉后再保存文件(注釋的方法是在該行開頭添加#),如圖2-88所示。

圖2-88

用同樣的方法編輯文件/etc/pam.d/gdm-autologin,將這個文件中的“auth required pam_succeed_if.so user != root quiet_success”注釋掉后再保存文件,如圖2-89所示。

圖2-89

(4)編輯文件/root/.profile,將這個文件的最后一行修改為“tty-s && mesg n || true”,也就是在mesg前面添加“tty-s &&”。然后保存文件退出編輯器,如圖2-90所示。

(5)在終端窗口輸入reboot命令重啟系統。

(6)重啟進入系統后,出現的登錄界面如圖2-91所示。

圖2-90

圖2-91

單擊“未列出”,然后在出現的用戶名中輸入root,并單擊“下一步”按鈕,如圖2-92所示。再輸入密碼123456,就可以進入系統了。然后打開一個終端,可以看到命令提示符是#,并且@前面是root,如圖2-93所示。

圖2-92

圖2-93

3. 安裝VMware Tools

VMware Tools是VMware workstation軟件的一個小工具,安裝了這個小工具后,可以方便宿主機和虛擬機之間的信息交互,比如相互復制粘貼數據、相互拖放文件。建議把這個工具安裝在root賬戶下。

在VMware中,依次單擊菜單選項“虛擬機→安裝VMware tools”,1秒后虛擬機Ubuntu桌面上會出現一個光驅的圖標,如圖2-94所示。

圖2-94

右擊這個圖標打開它,把該虛擬光盤里的“VMwareTools10.1.6-5214329.tar.gz”復制到主目錄中(直接拖放到“主目錄”中即可),如圖2-95所示。

圖2-95

進入主目錄,在空白處右擊,啟動終端程序,在終端窗口中輸入tar解壓縮命令進行文件的解壓縮,如圖2-96所示。

圖2-96

進入目錄vmware-tools-distrib,并執行腳本文件vmware-install.pl就開始安裝了,如圖2-97所示。

圖2-97

安裝過程會詢問一些問題,在第一個問題處輸入“yes”,其他保持默認設置,按回車鍵即可。當出現“what is the location of the "ifconfig"program on your machine?”時直接輸入“yes”,再按回車鍵。當出現如圖2-98所示的提示信息時就表示安裝成功了。

圖2-98

此時重啟系統,復制一個Windows下的文件,再粘貼到虛擬機Ubuntu中,發現可以粘貼進去就表示安裝和設置成功了。

4. 調整分辨率

剛安裝完的虛擬機Ubuntu的分辨率默認只有800×600,這使得虛擬機的窗口很小。我們需要調整分辨率。

在桌面上右擊,在彈出的快捷菜單中選擇“更換背景”命令,彈出來的窗口就會最大化,此時很不好操作,因此雙擊窗口的標題欄,讓窗口處于非最大化狀態,然后在左邊打開下拉列表,選擇“設備”選項,就可以看到“分辨率”,如圖2-99所示。

圖2-99

我們可以根據自己的顯示器設置一個合適的分辨率。單擊“800×600(4:3)”,此時會彈出來豎條窗口,上面有一個滑動按鈕,用鼠標控制滑到合適的分辨率,然后單擊右上方的“應用”按鈕。筆者選擇的是“1440×900”分辨率。

5. 設置禁止鎖屏

如果用戶在5分鐘內沒有任何操作,剛安裝完的Ubuntu 18.04將恢復到登錄界面,這個過程叫鎖屏。此時要進入系統就要再次輸入賬戶和密碼,非常煩瑣。對于學習開發而言,為了避免這種煩瑣的反復登錄,我們可以設置禁止鎖屏。具體的設置步驟如下:

(1)打開設置。單擊在桌面右上角的向下箭頭,這個小箭頭比較小,它位于關機按鈕右邊,如圖2-100所示。

此時會出現一個下拉窗口,單擊左下方的扳手圖標,如圖2-101所示。

圖2-100

圖2-101

隨后將出現設置窗口。注意,該窗口出現時將自動顯示上一次關閉該窗口時的子頁面,如果是子頁面,我們要先回到設置的主頁面,可以單擊左上角的后退按鈕,以確保看到左上角有“設置”二字,這就說明是設置窗口的主頁面了,如圖2-102所示。

(2)選擇電源,設置“從不”。在設置窗口的左邊列表中選擇“電源”,然后在右邊“節電”的“空白屏幕(B)”中選擇“從不”,如圖2-103所示,這樣就不會自動鎖屏了。

圖2-102

圖2-103

當然也可以設置一個較長的時間,這樣比較平衡,既能省電又不會頻繁鎖屏,畢竟默認的5分鐘相對而言有點太短了。

最后關閉設置窗口。

2.2.2 下載Qt 5.12.2

基本的安裝和設置已經完成了,下面可以讓Qt正式登場了。在編寫本書的時候,Qt的最新版本是5.12.2。可以到以下兩個地址下載Qt 5.12.2:

https://download.qt.io/archive/qt/

http://download.qt-project.org/official_releases/qt/5.12/5.12.2/

進到網頁后選中qt-opensource-linux-x64-5.12.2.run,然后開始下載,大概有1.36GB,稍等片刻即可下載完成,下載下來的文件是qt-opensource-linux-x64-5.12.2.run。

如果下載下來的文件存放到Windows中,下一步還需要把它存放到虛擬機Ubuntu中去。在虛擬機的桌面上,單擊左邊工具欄第三個按鈕來打開文件資源管理器,如圖2-104所示。

在新出現的文件資源管理器窗口中單擊左邊的“主目錄”,然后單擊右上角查詢圖標旁的排列圖標,如圖2-105所示。

這樣操作主要是可以在窗口中留出更多空白區域以方便我們新建文件夾。在空白處新建文件夾,并將這個文件夾命名為soft,然后用鼠標雙擊之,進入這個文件夾,然后把前面下載到Windows下的qt-opensource-linux-x64-5.12.2.run文件復制并粘貼到該文件夾中。注意,粘貼進度條即使消失了,也要稍等一會才能真正完成粘貼操作。操作一切正常的話,選中該文件后,它的右下角會顯示出1.5GB,如圖2-106所示。

圖2-104

圖2-105

圖2-106

這樣,下載下來的Qt安裝包就復制粘貼到虛擬機Ubuntu中了。

2.2.3 下載安裝依賴包

在安裝前,我們先要聯網安裝一些依賴性軟件包,免得安裝Qt的過程中提示這個找不到那個找不到。在終端窗口中,依次輸入如下命令,每個命令輸入后都會自動安裝,如果有詢問,就采用默認值。

2.2.4 安裝Qt

依賴包安裝完畢后,就可以開始安裝Qt了。打開終端窗口,進入到/root/soft下,然后為文件qt-opensource-linux-x64-5.12.2.run添加執行權限:

    [root@localhost soft]#chmod+x qt-opensource-linux-x86-5.4.1.run

添加執行權限后,就可以開始安裝Qt 5.12了。繼續運行命令:

    [root@localhost soft]# ./qt-opensource-linux-x64-5.12.2.run

然后就會出現安裝向導窗口,如圖2-107所示。

單擊Next按鈕,在下一個界面上選中I accept the service terms,然后單擊Skip按鈕,再單擊“下一步”按鈕,進入“安裝文件夾”界面,保持默認設置,安裝到/opt/Qt5.12.2路徑下,如圖2-108所示。

然后單擊Next按鈕,出現“選擇組件”界面,選中“Qt 5.12.2”,如圖2-109所示。其中,第二項Developer and Designer Tools主要是安裝Qt Creator這個集成開發軟件。

再單擊“下一步”按鈕,出現協議界面,選中下方的第一個選項,如圖2-110所示。

再單擊“下一步”按鈕,出現“已做好安裝準備”對話框,單擊“安裝”按鈕,就開始漫長的安裝,等安裝完成,單擊“完成”按鈕退出即可。

圖2-107

圖2-108

圖2-109

圖2-110

2.2.5 配置環境變量

在終端中執行命令“gedit/etc/bash.bashrc”,然后在文件末尾添加如下內容:

然后保存、關閉gedit軟件。保存之后需要在終端命令行中執行source命令(source/etc/profile)使環境變量生效。

設置了環境變量后,在終端窗口中輸入Qt Creator就可以啟動Qt Creator這個開發軟件了,而不用進入/opt/Qt5.12.2/Tools/Qt Creator/bin目錄后執行命令./Qt Creator。

2.2.6 驗證是否安裝成功

在終端窗口中執行命令“qmake –version”,如果出現如下信息就表示安裝成功:

    QMake version 3.1
    Using Qt version 5.12.2 in /opt/Qt5.12.2/5.12.2/gcc_64/lib

2.2.7 啟動Qt Creator

在Linux下開發Qt程序,集成開發工具基本上就是Qt Creator。打開終端窗口,然后輸入命令“Qt Creator”,稍等一會就會出現主窗口,如圖2-111所示。

圖2-111

2.2.8 第一個Linux下的Qt程序

相信大家到這會兒有點激動了,迫不及待地要新建項目文件。我們在前面已經介紹過新建項目的過程,這里不再贅述。不過,第一次運行項目不會那么順利,我們先來看下面的例子。

【例2.10】 Linux下的第一個Qt程序

(1)在虛擬機Ubuntu的終端窗口中輸入命令“Qt Creator”來啟動Qt Creator。在Qt Creator主界面上,依次單擊主菜單的菜單選項“文件→新建文件或項目”,隨后顯示出New File or Project對話框,在該對話框上選中Qt Widgets Application選項,如圖2-112所示。

然后單擊右下角的“Choose...”按鈕,出現“項目介紹和位置”設置界面,輸入名稱test,保持默認路徑,如圖2-113所示。

如果要更改路徑,則要確保所選擇的目標目錄已經存在。這一點是Qt Creator不如VC的地方。(Qt Creator居然不會自動新建目錄!)

圖2-112

圖2-113

后面一直單擊“下一步”按鈕即可,直到最后單擊“完成”按鈕,如圖2-114所示。

圖2-114

這樣一個MainWindow程序框架就建立起來了。

(2)按快捷鍵Ctrl+R運行項目,此時發現問題,報錯,如圖2-115所示。

圖2-115

這個問題具有普遍性!對于很多Linux發行版本,Qt安裝完成后如果直接編譯或者運行項目,就會出現“cannot find-lGL”錯誤提示信息,這是因為 Qt找不到OpenGL的動態鏈接庫(libGL.so)。OpenGL在大部分Linux發行版中都是默認安裝的,包括Ubuntu、CentOS等Linux發行版,找不到時一般都是路徑不對。

Qt默認在/usr/lib/目錄下查找動態鏈接庫,但是很多Linux發行版將OpenGL鏈接庫存放在其他目錄。例如,筆者使用的是CentOS 7,它的OpenGL鏈接庫位于/usr/lib64/目錄;而對于Ubuntu,它的OpenGL鏈接庫位于/usr/lib/i386-linux-gnu/mesa/目錄。只要把libGL.so復制到/usr/lib/目錄,或者在/usr/lib/目錄下為libGL.so創建一個鏈接,就能解決問題。顯然第二種辦法更好。

另外,Linux發行版自帶的OpenGL鏈接庫在后綴中添加了版本號,例如libGL.so.1、libGL.so.1.2.0、libGL.so.1.3.1等,但是Qt在鏈接階段查找的OpenGL鏈接庫是不帶版本號的。

總而言之,我們需要在/usr/lib/目錄下為OpenGL鏈接庫創建一個鏈接,并去掉版本號。

如果不知道當前Linux系統中libGL.so的具體路徑,那么可以使用locate libGL.so命令或find/usr-name libGL.so命令查找,然后使用ln-s創建鏈接。首先查找libGL.so:

把最后一個鏈接到/usr/lib/libGL.so:

    ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so

此后,按快捷鍵Ctrl+R運行,就可以發現運行成功了(如果還不行,就嘗試重新啟動Qt,并再次打開剛才的項目文件)。運行結果如圖2-116所示。

圖2-116

如果在一線企業從事開發工作,肯定要和其他同事進行合作,而且需要調用其他人提供的共享庫,有關Linux下的Qt如何調用.a靜態庫和.so共享庫的知識,可以參考本書的第9章。如果讀者作為初學者而不知道什么是庫,建議先學習Linux下的C語言編程知識(可以參考清華大學出版社出版的《Linux C與C++一線開發實踐》,里面詳細介紹了共享庫的概念、創建和使用)。

2.2.9 做個快照

前面我們把Linux下的Qt環境搭建起來了,為了保持勞動成果,可以用VMware軟件做個快照,一旦系統出現故障,就可以恢復到做快照時的狀態,建議養成這樣一個良好的習慣。

主站蜘蛛池模板: 中阳县| 台江县| 达州市| 五原县| 宝应县| 务川| 阿荣旗| 楚雄市| 柏乡县| 青河县| 河南省| 玛纳斯县| 甘泉县| 潞西市| 偃师市| 中江县| 灵石县| 闻喜县| 宣汉县| 宣武区| 津市市| 谢通门县| 阳新县| 惠东县| 大理市| 宁德市| 青冈县| 任丘市| 靖安县| 常州市| 鹤峰县| 始兴县| 突泉县| 五莲县| 塔城市| 宁河县| 崇义县| 扶余县| 高碑店市| 闸北区| 南昌市|