02.14 構建嵌入式C++開發環境

本文說明在Linux主機上構建ARM開發用最新C++交叉編譯環境的方法。

安裝Ubuntu主機

安裝虛擬機軟件

從VitualBox官網下載最新的VirtualBox。

<code>https://www.virtualbox.org/wiki/Downloads/<code>

具體的安裝包根據正在使用的操作系統決定。

構建嵌入式C++開發環境

安裝Ubuntu操作系統

####下載並安裝Ubuntu

交叉編譯環境我們選擇最新的Ubuntu操作系統,它可以從以下地址下載:

<code>https://ubuntu.com/#download/<code>

接下來的說明以Ubuntu Desktop 19.10為例進行,18.04也沒有問題。


構建嵌入式C++開發環境

配置網絡

由於需要共享開發目錄,因此將虛擬機的網絡設定為"橋接網卡"模式。

構建嵌入式C++開發環境

安裝交叉編譯軟件(gcc/g++)

修改鏡像服務器列表

打開安裝包服務器列表文件:

<code>sudo vi /etc/apt/sources.list/<code>

增加鏡像服務器

在srouce.list最後增加以下內容:

<code>deb http://th.archive.ubuntu.com/ubuntu bionic-updates main universe/<code>

安裝g++/gcc

<code>sudo apt-get install gcc-8-arm-linux-gnueabisudo apt-get install g++-8-arm-linux-gnueabi/<code>

確認安裝結果

在任意位置輸入以下命令確認gcc-8-arm的安裝情況:

<code>arm-linux-gnueabi-gcc -v/<code>

正確安裝gcc交叉編譯器之後,應該出現以下信息:

<code>Using built-in specs.COLLECT_GCC=arm-linux-gnueabi-gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/8/lto-wrapperTarget: arm-linux-gnueabi...gcc version 8.3.0 (Ubuntu/Linaro 8.3.0-23ubuntu2) /<code>

主要關注第二行的COLLECT_GCC信息和最後一行的版本信息(版本可能略有不同)。 以同樣的方式確認g++-8的安裝結果:

<code>arm-linux-gnueabi-g++ -v/<code>

正確安裝g++交叉編譯器之後,應該出現以下信息:

<code>Using built-in specs.COLLECT_GCC=arm-linux-gnueabi-gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/8/lto-wrapperTarget: arm-linux-gnueabi...gcc version 8.3.0 (Ubuntu/Linaro 8.3.0-23ubuntu2) /<code>

主要關注第二行的COLLECT_GCC信息和最後一行的版本信息(版本可能略有不同)。

參考信息:

gcc-8:

<code>https://packages.ubuntu.com/bionic-updates/amd64/gcc-8-arm-linux-gnueabi/download/<code>

g++-8:

<code>https://packages.ubuntu.com/bionic-updates/amd64/g++-8-arm-linux-gnueabi/download/<code>

安裝Eclipse CDT

下載EclipseCDT

進入下面的網頁:

<code>https://www.eclipse.org/downloads/packages//<code>

選擇下圖紅框中的Eclipse IDE for C/C++ Developers:


構建嵌入式C++開發環境

由於要在Ubuntu上運行這個開發環境,因此選擇[Linux 64-bit]進行下載。

安裝

在適當的位置使用以下命令解壓縮安裝包(表明可能略有不同)。

<code>tar -zxvf eclipse-cpp-2019-12-R-linux-gtk-x86_64.tar.gz/<code>

進入加壓縮得到的eclipse目錄,啟動eclipse:

<code>./eclipse/<code>

如果不能成功啟動,一般就是Java環境不具備,自行安裝jre或者jdk即可。

建立交叉編譯項目

構建項目

進入加壓縮得到的eclipse目錄,啟動eclipse:

<code>./eclipse/<code>

如下圖選擇工作目錄並按下[Launch]按鈕:


構建嵌入式C++開發環境

通過如下菜單選擇創建新項目:

<code>[File]-[New]-[Project]/<code>

選擇[C/C++Project]作為項目類型,進入下一步:

構建嵌入式C++開發環境

選擇[C++ ManagedBuild]之後,進入下一步:

構建嵌入式C++開發環境

選擇[Cross GCC]之後進入下一步:

構建嵌入式C++開發環境

直接進入下一步:

構建嵌入式C++開發環境

在下面的畫面中配置交叉編譯器,之後按下[Finish]結束。

構建嵌入式C++開發環境

配置內容:

1.在[Cross compiler prefix]編輯框中輸入[arm-linux-gnueabi-]

2.為[Cross complier path:]項目選擇[\\\\usr\\bin].

編寫驗證程序

參照下圖為arm_cpp項目添加arm_cpp.cpp文件:

構建嵌入式C++開發環境

<code>#include<iostream>int main(){    std::cout << "Hello GCC/G++ Compiler!" << std::endl;    return 0;}/<iostream>/<code>

通過以下菜單編譯arm_cpp工程:

<code>[Project]-[Build Project]/<code>

在eclipse的Console欄中出現如下內容()就表示大功告成!

<code>16:29:17 **** Build of configuration Debug for project arm_cpp ****make all Building file: ../arm.cppInvoking: Cross G++ Compilerarm-linux-gnueabi-g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"arm.d" -MT"arm.o" -o "arm.o" "../arm.cpp"Finished building: ../arm.cpp Building target: arm_cppInvoking: Cross G++ Linkerarm-linux-gnueabi-g++  -o "arm_cpp"  ./arm.o   Finished building target: arm_cpp 16:29:17 Build Finished. 0 errors, 0 warnings. (took 382ms)/<code>

覺得本文有幫助?請分享給更多人。

面向對象開發,面向對象思考!


分享到:


相關文章: