Visual Studio Code編譯Apollo項(xiàng)目
Apollo是百度公司發(fā)布的一個(gè)開(kāi)放,完整,安全的面向汽車行業(yè)和自動(dòng)駕駛領(lǐng)域的開(kāi)源軟件平臺(tái)。借助于該系統(tǒng),并結(jié)合他們提供的車輛和硬件系統(tǒng),可以快速搭建一套屬于自己的完整的自動(dòng)駕駛系統(tǒng)。目前,我們正借助與該軟件平臺(tái)實(shí)現(xiàn)指定道路的循跡駕駛功能。
但是由于其基于Ubuntu系統(tǒng),使得該項(xiàng)目的編譯與調(diào)試變得比較繁瑣。于是,我們尋求一種基于Ubuntu系統(tǒng)的IDE(集成開(kāi)發(fā)環(huán)境),能夠方便的編輯,構(gòu)建Apollo項(xiàng)目。Visual Studio Code(VSCode)是微軟公司開(kāi)發(fā)的支持Ubuntu的輕量級(jí)代碼編輯器,它并不是嚴(yán)格意義上的IDE,更像是一個(gè)代碼編輯器。但它能夠在Linux系統(tǒng)上編輯,構(gòu)建Apollo項(xiàng)目,使用起來(lái)簡(jiǎn)單方便,所以,我們選擇使用VSCode來(lái)編輯,構(gòu)建Apollo項(xiàng)目。
二.安裝Visual Studio Code
1. 下載deb安裝包
https://code.visualstudio.com/Download
2. 安裝Visual Studio Code
打開(kāi)Ubuntu終端,輸入命令
$ sudo dpkg -i code_1.19.2-1515599945_amd64.deb.
3. 運(yùn)行
在終端輸入命令 $ code ,即可打開(kāi)VSCode Studio Code,啟動(dòng)后導(dǎo)入Apollo項(xiàng)目代碼。
三.編譯,構(gòu)建Apollo項(xiàng)目
1.導(dǎo)入Apollo項(xiàng)目
打開(kāi)VSCode,點(diǎn)擊Open folder,選擇Apollo項(xiàng)目文件,點(diǎn)擊OK。如下圖所示,這樣,Apollo項(xiàng)目就成功加載進(jìn)來(lái)了。

2.配置編譯任務(wù)文件“tasks.json”
打開(kāi)VSCode,點(diǎn)擊菜單欄Tasks->Configure Tasks,選擇“使用模板創(chuàng)建tasks->Others”,運(yùn)行任意外部命令的實(shí)例。此時(shí)會(huì)在“.vscode“文件夾下生成任務(wù)文件“tasks.json”,將該文件修改為如下內(nèi)容:

3.配置環(huán)境文件“c_cpp_properties.json”
使用快捷方式“Ctrl+shift+P”,打開(kāi)屬性配置對(duì)話框,選擇“C/Cpp:Edit Configurations”,此時(shí),會(huì)在此時(shí)會(huì)在“.vscode“文件夾下生成任務(wù)文件“c_cpp_properties.json”,該文件可用來(lái)配置項(xiàng)目中的頭文件搜索路徑,在“includePath”一項(xiàng)添加自己的頭文件路徑,其格式如下圖所示。

4.添加“launch.json”文件
在“.vscode”文件夾下添加文件,命名為“launch.json”,并完善其內(nèi)容(可省略)。
配置文件添加完畢,將上述配置內(nèi)容保存,按住快捷鍵“Ctrl+shift+B”編譯工程,編譯時(shí)會(huì)啟動(dòng)Docker,此時(shí),需要在底部終端輸入超級(jí)用戶密碼。命令執(zhí)行完畢,若在底部終端窗口出現(xiàn)如下信息,則表示編譯成功。

四.問(wèn)題及解決方案
1.編譯時(shí)長(zhǎng)時(shí)間停留在“Building: no action running”界面
這是由于當(dāng)前系統(tǒng)中存在多個(gè)不同版本的Docker或者是bazel內(nèi)部緩存不一致造成的。解決方法:按住快捷鍵“Ctrl+C”終止當(dāng)前構(gòu)建過(guò)程,在VSCode的命令終端窗口,使用下述任意一中,停止當(dāng)前運(yùn)行的Docker
方式1:停止當(dāng)前所有Apollo項(xiàng)目的Docker
$ dockerstop ${docker ps -a | grep apollo | wak ‘{print $1}’}
方式2:停止當(dāng)前所有的Docker
$ dockerstop ${docker ps -aq}
2.編譯時(shí)遇到 “ERROR:query interrupted” 錯(cuò)誤
這是由于bazel內(nèi)部緩存不一致造成的,解決方法:
按任意鍵退出編譯過(guò)程,在VSCode的命令終端窗口執(zhí)行如下命令進(jìn)入Docker環(huán)境
$ bashdocker/scripts/dev_into.sh
在Docker環(huán)境中輸入如下命令,執(zhí)行bazel的清理緩存任務(wù)(此過(guò)程需要保持網(wǎng)絡(luò)通暢,以便成功下載依賴包)
$ bazelquery
最后,輸入exit命令退出Docker環(huán)境,按快捷鍵“Ctrl+Shift+B”,重新執(zhí)行構(gòu)建任務(wù)。
-
汽車測(cè)試網(wǎng)V課堂
-
微信公眾號(hào)
-
汽車測(cè)試網(wǎng)手機(jī)站
廣告 編輯推薦
最新資訊
-
“汽車爬坡試驗(yàn)方法”將有國(guó)家標(biāo)準(zhǔn)
2026-03-03 12:44
-
十年耐久監(jiān)管時(shí)代:電池系統(tǒng)開(kāi)發(fā)策略將如何
2026-03-03 12:44
-
聯(lián)合國(guó)法規(guī)R59對(duì)機(jī)動(dòng)車備用消聲系統(tǒng)的工程
2026-03-03 12:08
-
聯(lián)合國(guó)法規(guī)R58對(duì)后下部防護(hù)裝置的工程化約
2026-03-03 12:07
-
聯(lián)合國(guó)法規(guī)R57對(duì)摩托車前照燈配光性能的工
2026-03-03 12:07





廣告


























































