0 環境
- Windows 10 build version >= 18917 1
啓動 cmd 後輸出的第一行文字便是 Windows 的版本信息,或者更明確一點,在 cmd 中執行ver
。如果不滿足版本要求請更新系統到高版本。
1 配置 WSL
WSL (Windows Subsystem for Linux) 提供了在 Windows 10 中執行 Linux 命令的兼容層,即在 Windows10 中可以運行Linux 子系統,WSL有 WSL 和 WSL2兩個版本,WSL2 和 WSL 的主要區別在於 WSL2 中真實的運行了一個 Linux 核。也就是說在 WSL2 在 Windows10 上提供了一個真實的 Linux 子系統,在這個子系統裏面幾乎可以執行任何 Linux 主機上可以執行的操作。同時 Windows 10 硬盤上的數據可以在 WSL 中直接訪問到,這就給跨平臺的測試和開發帶來許多便利。
1.1 安裝 WSL2
在以管理員身份運行的 powershell 中執行 2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重啓之後,在 Microsoft Store 搜索 Ubuntu 18.04 找到 Ubuntu 系統,當然 WSL 也支持一些其他的 Linux 發行版本。
安裝之後可能需要一些設置。首先檢查一下當前的 linux 分發版本是運行在 WSL 還是 WSL2,在 cmd 或者powershell 中執行
wsl -l -v
確定版本號 VERSION
1。如果 VERSION
是 1
,則可以通過 wsl --set-version <distro> <version>
來設置,如wsl --set-version Ubuntu-18.04 2
可以設置 Ubuntu-18.04 使用 WSL2。
1.2 安裝工具鏈
上面安裝了基於 WSL2 的 Ubuntu-18.04,但是還需要進一步安裝用來開發的工具鏈。針對於 Ardupilot 和 PX4開發而言,這裏的工具鏈主要涉及到本地編譯和交叉編譯的工具鏈。本地編譯主要是用來編譯仿真測試的代碼,交叉編譯主要是用來編譯到嵌入式平臺上,即編譯到飛控硬件平臺上。下面的步驟主要參考 Ardupilot 開發文檔 3 和 PX4 開發文檔 4。
-
本地編譯:gcc
-
交叉編譯:arm-none-eabi-gcc
這裏可以分別用 Ardupilot 和 PX4 官方配置來安裝。
# Ardupilot
cd path/to/ardupilot/Tools/environment_install
./install-prereqs-ubuntu.sh
# PX4
cd path/to/Firmware/Tools/setup
chmod u+x ubuntu.sh --no-sim-tools
./ubuntu.sh
上面安裝 PX4 編譯依賴項時使用了--no-sim-tools
選項來避免安裝仿真工具,對於 Arudpilot 和 PX4 的安裝依賴項還有一些可以自己設定,這裏就不展開了。
2 配置VS Code
在安裝VS Code後,在 VS Code 安裝Remote Development
插件,然後通過 ctrl + shift + p
執行命令remote-WSL
來打開 WSL 工作空間。這個時候就可以在 VSCode 裏面進行 Linux 下的程序開發此時在VS Code 中的launch.json
文件中會自動生產對應於 Linux 環境下的編譯設置。除此之外,由於 Ardupilot/PX4 代碼的主要編程語言爲 C/C++ 和 Python,所以順便安裝上一些相關插件
- Python: Python (Microsoft)
- C/C++: C/C++ (Microsoft)
- CMake: CMake Tools (Microsoft)