今天開始準備在ubuntu16.04下搭建px4的開發環境。早就聽說源**編譯的過程中有很多坑,所以在編譯源**之前在網上搜尋了很多教程,其中這個教程寫的非常詳細:
這篇部落格是2023年8月的,想起自己曾經在2023年5月左右配置過相同的開發環境,踩坑踩到懷疑人生。編譯安裝過程中的很多問題在這邊部落格中都可以找到。但是由於我在編譯的時候確實出現了跟那篇博文不同的問題,因此決定單獨記一下筆記,一來防止自己忘記,二來如果各路大佬看到如果有錯誤的話也煩請糾正一下。
首先,新增使用者組,然後把ubuntu自帶的modemmanager管理器解除安裝掉。**如下(執行完**需要登出使用者並重新登入):
sudo usermod -a -g dialout $user
sudo usermod -a -g dialout $user
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install python-argparse git-core wget zip -y
sudo apt-get install python-empy qtcreator cmake build-essential genromfs -y
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install python-serial openocd -y
sudo apt-get install flex bison libncurses5-dev autoconf texinfo build-essential -y
sudo apt-get install libftdi-dev libtool zlib1g-dev python-empy -y
sudo apt-get install lsb-core
sudo apt-get install python-jinja2
sudo apt-get install python-pip
sudo pip install numpy toml
現在還差乙個最重要的模組沒有安裝,就是gcc-arm-none-eabi,這個是在ubuntu編譯arm程式的必備工具。我們可以隨意安裝乙個,直接使用sudo apt-get install 方式就可以,但是這樣安裝的預設版本一般都不能滿足要求。在這裡,如果各位想試錯誤的話,可以先暫時隨意安裝乙個,**如下:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi -y
安裝之後,可以使用arm-none-eabi-gcc --version來檢視我們安裝的是哪個版本,我這裡是4.9.3。
第一步:執行如下操作,如果期間提示失敗之類的,就將src資料夾中的內容清空,然後重新git clone即可,有時候網速確實慢的可怕,可怕,真可怕。。。
mkdir -p ~/pixhawk/src
cd ~/pixhawk/src
git clone
cd firmware
git submodule update --init --recursive
其一是gcc-arm-none-eabi的版本,我們上文提到過了,也是很多部落格中提到的共同問題。
其二是我們所使用的是哪款硬體,因為pixhawk和pixhawk2對應的韌體是不一樣的,這個問題我們可以訪問px4的github源**的網頁下邊有詳細的說明,如下所示:
如圖可以看出,我們使用的是pixhawk2,因此需要編譯px4_fmu-v3_default這個版本。另外在這裡也說明一下,這種readme真的很有用,它有時會幫助我們解決很多問題。下邊就可以編譯源**了:
make px4_fmu-v3_default
不出所料,果然報錯了,但是這種錯誤並不是提示缺少某些東西或者類似flash記憶體不足之類的。而是類似於我們編寫普通c++**時出現的類似語法錯誤、函式呼叫錯誤或者檔案包含錯誤等等。很明顯,這種錯誤與我們的系統無關,與我們的開發環境無關,與人家的開源**也無關。嗯是的,終極原因就是gcc-arm-none-eabi的版本問題!
#將以前版本的解除安裝掉
sudo apt-get remove gcc-arm-none-eabi
#解壓tar -jxf gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
#移動sudo mv gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2 /opt
然後進入~/.bashrc檔案,在裡面新增這樣一句話:
export path=/opt/gcc-arm-none-eabi-8-2019-q3-update/bin:$path
然後儲存並關閉檔案,在終端中執行:
source ~/.bashrc
如果**有錯誤,歡迎各位指正。 ubuntu16 04系統下安裝虛擬環境
前言 進行python專案開發的時候,由於不同的專案需要使用不同的資源包和相關的配置,因此建立多個python虛擬環境,在虛擬環境下開發就顯得很有必要。sudo apt install python virtualenv說明 以上兩條命令逐條執行,完成後虛擬環境安裝完畢。或者可以使用pip安裝,前提...
ubuntu16 04下使用命令列編譯執行C
使用vim或sublime編寫測試cpp檔案test.cpp 例 includeusing namespace std int main int a cin a cout 假設儲存在algorithm資料夾下 進入algorithm資料夾 cd algorithm編譯test.cpp並命名可執行檔案...
windows系統下openssl的編譯
遇到各種錯誤,實在考驗人的耐性,把整個詳細過程寫下來,也讓其他人好少走彎路。1 首先需要perl,安裝好perl並將bin新增到系統變數path中 2 接著是c編譯器,我電腦中安裝了vc 2010,因此就不需要再安裝,只需在使用的時候設定相應的環境變數 步驟如下 2 開啟cmd命令列,進入c ope...