激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月

ubuntu+Qt開發環境搭建

 2023-3-1     作者:楊陽         

1、安裝說明


通過在虛擬機+Ubuntu系統下安裝Qt開發工具QtCreator,可以進行Qt相關的應用開發,并將應用程序運行于英創工控主板之上。QtCreator同時也可以支持非Qt的C/C++程序的開發。所以用戶只需要在eclipse和QtCreator中選擇一種進行環境搭建。


開發環境Eclipse(Linux版本)QtCreator(Linux版本)
支持程序類型C/C++C/C++,Qt程序


關于虛擬機+Ubuntu系統的安裝,可以參考《ubuntu+eclipse開發環境搭建》一文(只需要參考Ubuntu系統安裝的部分)。


本文適用于ESM6800E/H、ESM6802、ESM7000系列、ESM8000系列工控主板,主要介紹了windows下虛擬機+ubuntu中Qt開發環境搭建的詳細過程,包括交叉編譯工具鏈的安裝,Qt工具安裝以及配置。


本文所使用的安裝包:

1、ESM7000-toolchain-x86_64.sh(交叉工具鏈安裝包),本文以ESM7000為例,其他主板的交叉工具鏈安裝包可以參考下面的表格:

主板型號工具鏈安裝包
ESM6800E/HESM6800-toolchain-x86_64.sh
ESM6802ESM6802-toolchain-x86_64.sh
ESM7000系列ESM7000-toolchain-x86_64.sh
ESM8000系列ESM8000-toolchain-x86_64.sh


2、qt-creator-opensource-linux-x86_64-4.15.2.run(QtCreator安裝包),安裝的QtCreator僅僅是一個IDE集成環境,編程所使用的Qt庫已經集成在了安裝好的編譯工具中。因此用戶也可以使用別的QtCreator版本,不會對開發程序有任何影響。而已經安裝過QtCreator的用戶,就不用再重新安裝了,可以直接跳到第4步,按照說明添加一套主板使用的編譯環境。QtCreator安裝包的下載地址:https://download.qt.io/official_releases/qtcreator/


以上安裝文件均在產品光盤的“工具”文件夾中。


2、交叉編譯工具鏈安裝


1、打開VMvare,啟動ubuntu,然后將前面提到的兩個安裝包復制到ubuntu的個人用戶目錄中,即/home/<用戶名>,本文中為/home/emtronix,如下圖:

1.png

  

2、建立/home/emtronix/tools/esm7000文件夾用于安裝交叉工具鏈(本文以/home/emtronix/tools/esm7000為例,客戶可以根據習慣自行建立文件夾),然后在命令行中進入到存放安裝文件的目錄中,輸入命令:

$ ./ ESM7000-toolchain-x86_64.sh

啟動交叉工具鏈的安裝后,首先需要手動輸入安裝路徑,指定到剛剛新建的目錄中即可(本文是/home/emtronix/tools/esm7000),之后輸入“y”以確認安裝,如下圖:

2.png


3、QtCreator安裝


安裝QtCreator有兩種方法,第一種是使用Ubuntu系統自帶的QtCreator軟件,這種方法比簡單方便,但是QtCreator軟件本身的版本可能有一定滯后型,不過不會影響開發。安裝方法如下:


1、在終端輸入命令,首先安裝依賴的軟件,然后安裝QtCreator:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install make build-essential

$ sudo apt-get install libxcb-xinerama0

$ sudo apt-get install qtcreator


如下圖:

3.png


安裝完成后,在終端輸入qtcreator就可以啟動QtCreator軟件了。


第二種方法是針對想使用最新版本的QtCreator開發的用戶,可以在網站https://download.qt.io/official_releases/qtcreator/下載最新版本的安裝包,如果下載較慢,可以采用下載網站中提供的國內鏡像下載網址。本文使用4.15.2版本為例(安裝包為qt-creator-opensource-linux-x86_64-4.15.2.run),安裝方法如下:


1、在終端輸入命令,首先還是安裝依賴的軟件,然后進入到存放QtCreator安裝包的目錄中,并啟動QtCreator的安裝:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install make build-essential

$ sudo apt-get install libxcb-xinerama0

$ ./qt-creator-opensource-linux-x86_64-4.15.2.run

如下圖:

4.png


2、安裝程序啟動后,會自動聯網登錄Qt賬戶,根據提示輸入或者注冊賬戶即可。如果網絡無法連接,會等待超時后跳過登錄賬戶的步驟,如下圖:

5.png

  

3、等待Qt賬戶驗證成功,繼續點擊“next”,直到輸入安裝路徑的頁面,用戶可以根據習慣自行設置,本文使用的安裝路徑為/home/emtronix/tools/qtcreator-4.15.2,如下圖:

7.png


4、選擇需要安裝的組件,按照默認配置即可。如下圖:

8.png


5、然后繼續“next”,直到開始安裝,如下圖:

9.png


6、安裝完成以后,/home/emtronix/tools文件夾下可以看到“esm7000”和“qtcreator-4.15.2”兩個文件夾,如下圖(客戶可以在自己指定的安裝文件夾中看到這兩個文件夾):

11.png


其中,我們后面要用到的qtcreator位于/home/emtronix/tools/qtcreator-4.15.2/bin/文件夾下,如下圖:

10.png


4、QtCreator設置


交叉編譯工具鏈和Qt安裝完成以后,首先需要設置環境變量,然后啟動qtcreator配置相關選項。


啟動QtCreator


1、首先需要導入交叉工具鏈的環境變量,進入到交叉工具鏈的安裝路徑中:

$ cd ~/tools/esm7000

~代表用戶目錄/home/emtronix,本文以/home/emtronix/tools/esm7000為例,客戶請進入自己的交叉編譯工具鏈安裝目錄。

使用source命令導入environment開頭的配置文件,這個文件包含了交叉工具鏈正常運行所需的環境變量:

$ source environment-setup-cortexa7hf-neon-poky-linux-gnueabi

環境變量配置文件都放在交叉工具鏈的安裝目錄下,并且以environment開頭。各個主板型號對應的環境變量配置文件可參考下表:

主板型號對應環境變量配置文件
ESM6800E/Henvironment-setup-cortexa7hf-neon-poky-linux-gnueabi
ESM6802environment-setup-cortexa9hf-neon-poky-linux-gnueabi
ESM7000系列environment-setup-cortexa7hf-neon-poky-linux-gnueabi
ESM8000系列environment-setup-aarch64-poky-linux


2、導入環境變量后,進入到QtCreator的安裝路徑下,啟動QtCreator:

$ cd ~/tools/qtcreator-4.15.2/bin/

$ ./qtcreator

如下圖:


12.png

注:每次運行Qtcreator之前都必須重復這一步設置環境變量(設置交叉編譯工具鏈的指向)。


配置QtCreator


1、啟動Qtcreator以后打開“Tools”-“Options”,如下圖:

ubuntu+Qt開發環境搭建.png

  

2、選擇左邊的“Kits”-“Compilers”,點擊“Add”-“GCC”-“C”添加交叉編譯工具,如下圖:

image.png


繼續設置新添加的C編譯工具,將“Name”填寫為“esm7000-GCC”(用戶可自行修改),并選擇“Compiler path”為交叉工具鏈安裝目錄下:“sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc”(用戶需要根據實際安裝的目錄選擇),然后點擊“Apply”保存設置,如下圖:

13.png

 

不同主板的交叉工具鏈對應的C編譯工具可參考下表:

主板型號對應C編譯工具(相對交叉工具鏈安裝路徑)
ESM6800E/Hsysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
ESM6802sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
ESM7000系列sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
ESM8000系列sysroot/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc

 

3、選擇左邊的“Kits”-“Compilers”,點擊“Add”-“GCC”-“C++”添加交叉編譯工具,如下圖:

image.png


繼續設置新添加的C++編譯工具,“Name” 填寫為“esm7000-G++”(用戶可自行修改),并選擇“Compiler path”為交叉工具鏈安裝目錄下:“sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++”,然后點擊“Apply”保存設置,如下圖:

14.png



不同主板的交叉工具鏈對應的C++編譯工具可參考下表:

主板型號對應C++編譯工具(相對交叉工具鏈安裝路徑)
ESM6800E/Hsysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
ESM6802sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
ESM7000系列sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
ESM8000系列sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++


4、選擇左邊的“Kits”-“Qt Versions”下的“Add”添加交叉工具鏈中的qmake,選擇交叉工具鏈安裝目錄下的“sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake”。其中“Version name”命名為“ESM7000-qt5”(用戶可自行修改),點擊“Apply”保存Qt Versions設置,如下圖如下圖:

15.png


不同主板的交叉工具鏈對應的qmake路徑可參考下表:

主板型號對應的qmake路徑(相對交叉工具鏈安裝路徑)
ESM6800E/Hsysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
ESM6802sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
ESM7000系列sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
ESM8000系列sysroots/x86_64-pokysdk-linux/usr/bin/qmake

  

5、選擇左邊的“Kits”-“Kits”頁面下的“Add”,增加一組主板專用的編譯配置,具體設置如下:

設置項設置內容說明
nameesm7000新建的Kits名稱,客戶可自行取名
Compiler CESM7000-GCC配置C編譯工具
Compiler C++ESM7000-G++配置C++編譯工具
Qt versionESM7000-qt5選擇Qt版本

  

以上設置均對應前面幾步設置的名稱,實際設置時用戶選擇自己填寫的名稱即可,如下圖所示:

16.png

這一步完成以后,開發環境設置即進行完畢,之后就可以用qtcreator進行開發了。


在較高版本的QtCreator(目前測試在4.15版本及其以上)中,編輯界面的代碼可能會有很多報錯和警告的信息,可以選擇QtCreator中的Help->About Plugins,如下圖:

image.png


然后取消其中的ClangCodeModel項,重啟一次QtCreator即可:

17.png

  

需注意的是,每一次啟動qtcreator之前,都必須重復步驟4.1,進行環境變量設置(設置交叉編譯工具鏈的指向)。


開發實例


非QT程序


1、啟動Qtcreator,選擇“File”-“New File or Project”新建工程,選擇Non-Qt Project下的”Plain C++ Application”命令行程序。


ubuntu+Qt開發環境搭建.png

  

2、依次設置好工程名和路徑,設置編譯器為qmake,選擇設置的kit(見文章4.5節),點擊finish,創建好新工程(以上設置均可選擇默認設置)。

ubuntu+Qt開發環境搭建.png

  

3、選擇“Build”-“Build Project”,編譯工具,即可在設定的編譯目錄中看到編譯好的可執行程序。


4、參考開發光盤中例程,以串口例程step2_serialtest為例,拷貝main函數代碼到工程中,工程中添加頭文件“serial.h”和源文件“serial.cpp”,因為工程里用到了pthread庫中的接口函數,所以需要在工程中添加pthread庫。

ubuntu+Qt開發環境搭建.png

  

5、參考開發光盤中《使用必讀》,將編譯好程序放置到工控主板掛載目錄中運行,可以看到工控主板打印的程序信息(可以短接串口ttyS2收發腳自發自收測試)。


qt界面程序


1、啟動Qtcreator,選擇“File”-“New File or Project”新建工程,選擇”Qt Console Application”界面程序。

ubuntu+Qt開發環境搭建.png

  

2、依次設置好工程名和路徑,設置編譯器為qmake,選擇設置的kit(見文章4.5節),點擊finish,創建好新工程(以上設置均可選擇默認設置)。

ubuntu+Qt開發環境搭建.png

  

3、點擊Forms中.ui文件,即可進入Design界面。

ubuntu+Qt開發環境搭建.png

  

4、拖動控件,設置相應控件參數。以串口例程為例: 

ubuntu+Qt開發環境搭建.png

  

5、添加控件的響應代碼,以“打開”按鈕為例:

該按鈕名為pushButton_2的QpushButton

ubuntu+Qt開發環境搭建.png

右鍵點擊按鈕,選擇“Go to slot”

ubuntu+Qt開發環境搭建.png

選擇事件,這里選按鈕的點擊事件,即可編輯響應函數。

void MainWindow::on_pushButton_2_clicked()
{
    int     port;
    int     baud;
    char    databits;
    char    stopbits;
    char    parity;
    port = ui->comboBox->currentIndex()+1;
    switch (ui->comboBox_2->currentIndex()) {
    case 0:
        baud = 4800;
        break;
    case 1:
        baud = 9600;
        break;
    case 2:
        baud = 115200;
        break;
    default:
        baud = 115200;
        break;
    }
    switch (ui->comboBox_3->currentIndex()) {
    case 0:
        databits = '7';
        break;
    case 1:
        databits = '8';
        break;
    default:
        databits = '8';
        break;
    }
    switch (ui->comboBox_4->currentIndex()) {
    case 0:
        stopbits = '1';
        break;
    case 1:
        stopbits = '2';
        break;
    default:
        stopbits = '1';
        break;
    }
    switch (ui->comboBox_5->currentIndex()) {
    case 0:
        parity = 'O';
        break;
    case 1:
        parity = 'E';
        break;
    default:
        parity = 'N';
        break;
    }
    m_Serial.m_ExitThreadFlag = 0;
    int iRet;
    iRet = m_Serial.OpenPort(port, baud, databits, stopbits, parity);
    if(iRet<0)
    {
        printf("serial open fail\n");
        return;
    }
    m_Serial.m_ExitThreadFlag = 0;
    m_Serial.m_pThread = new Thread;
    m_Serial.m_pThread->m_pSer = &m_Serial;
    connect(m_Serial.m_pThread, SIGNAL(RevSignal(char*,int)), this, SLOT(RevSlot(char*,int)));
    m_Serial.m_pThread->start();
    ui->pushButton_2->setEnabled(false);
    ui->pushButton_3->setEnabled(true);
}


編輯完代碼后,點擊build,編譯好程序。


6、將編譯好程序放置到工控主板掛載目錄中運行,即可調試帶界面程序。


示例程序在光盤中,也可聯系英創工程師獲得。

主站蜘蛛池模板: 成人福利在线免费观看| a毛片免费全部播放完整成| 成年人网址在线观看| 国产无限免费观看黄网站| 黄色的网站免费观看| 国产福利精品在线| 久久久久久不卡| 日韩欧美国产中文| 亚洲欧美日韩综合二区三区| 一级日韩| 久久久久久国产a免费观看黄色大片 | 亚洲欧美偷拍自拍| wwwww色| 大杳蕉伊人狼人久久一本线| 日韩草逼视频| 亚洲色视频在线播放网站| 成人黄色视屏| 免费性生活视频| 99久久免费午夜国产精品| 精品国产网| 亚洲精品国产成人99久久| 91精品一区二区三区在线观看 | 亚洲国产最新| 亚洲一区在线免费观看| 97se亚洲综合在线韩国专区福利| 三级黄免费| 久久精品国产一区二区| 日本做爰免费大片视频| 曰本黄色毛片| 午夜影院毛片| 外国毛片视频| 永久免费观看黄网站| 亚洲国产成人精品区| 在线观看三级视频| 在线免费观看一级毛片| 在线国产毛片| 在线视频观看国产| 在线国产你懂的| 亚洲国产欧美自拍| 手机在线黄色网址| 中文黄色|