本文說明在Linux主機上構建ARM開發用最新C++交叉編譯環境的方法。
安裝Ubuntu主機
安裝虛擬機軟件
從VitualBox官網下載最新的VirtualBox。
<code>https://www.virtualbox.org/wiki/Downloads/<code>
具體的安裝包根據正在使用的操作系統決定。
![構建嵌入式C++開發環境](http://p2.ttnews.xyz/loading.gif)
安裝Ubuntu操作系統
####下載並安裝Ubuntu
交叉編譯環境我們選擇最新的Ubuntu操作系統,它可以從以下地址下載:
<code>https://ubuntu.com/#download/<code>
接下來的說明以Ubuntu Desktop 19.10為例進行,18.04也沒有問題。
![構建嵌入式C++開發環境](http://p2.ttnews.xyz/loading.gif)
配置網絡
由於需要共享開發目錄,因此將虛擬機的網絡設定為"橋接網卡"模式。
安裝交叉編譯軟件(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:
由於要在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]按鈕:
通過如下菜單選擇創建新項目:
<code>[File]-[New]-[Project]/<code>
選擇[C/C++Project]作為項目類型,進入下一步:
選擇[C++ ManagedBuild]之後,進入下一步:
選擇[Cross GCC]之後進入下一步:
直接進入下一步:
在下面的畫面中配置交叉編譯器,之後按下[Finish]結束。
配置內容:
1.在[Cross compiler prefix]編輯框中輸入[arm-linux-gnueabi-]
2.為[Cross complier path:]項目選擇[\\\\usr\\bin].
編寫驗證程序
參照下圖為arm_cpp項目添加arm_cpp.cpp文件:
<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>
覺得本文有幫助?請分享給更多人。
面向對象開發,面向對象思考!
閱讀更多 面向對象思考 的文章