版本说明:
ubuntu server 20.0.04
MAVSDK 1.3.1
PX4官网通过编译源代码安装MAVSDK的文章如下:
Building library from Source · MAVSDK Guide
通过编译源代码生成并安装MAVSDK-C++软件库,对于非x86的机器尤其有用,比如:树梅派等机器。
1. 下载MAVSDK源代码主干
git clone https://github.com/mavlink/MAVSDK.git
2. 下载MAVSDK源代码的子模块
git submodule update –init –recursive
注:这一步是下载MAVSDK所需要的第三方软件, 如果这一步有异常,可用git clone单独下载。
这些第三方软件是:
mavsdk-proto软件包(这一项可忽略)
访问地址:github.com/mavlink/MAVSDK-proto.git
存放目录:/MAVSDK/proto
gtest软件包
访问地址: github.com/google/googletest
存放目录:/MAVSDK/src/third_party/gtest
mavlink_v2软件包
访问地址:github.com/mavlink/c_library_v2.git
存放目录:/MAVSDK/src/third_party/mavlink/include/mavlink/v2.0
3. 编译配置
进行编译之前需要做编译配置,编译配置有两种,一种是调试版,一种是发行版。
-
调试版的编译配置:
cmake -DCMAKE_BUILD_TYPE=Debug -Bbuild/default -H.
-
发行版的编译配置:
cmake -Bbuild/default -DCMAKE_BUILD_TYPE=Release -H.
注:编译配置主要是检查并测试编译环境是否合格,另外在对
MAVSDK
的主要源程序编译之前需要下载并编译一些第三方软件包。编译配置这个过程是比较容易出现异常中断的,问题主要出现在下载第三方软件时,
github.
com
的网站的访问异常导致这个过程中断,
这些第三方软件包是:
js
oncpp
软件包
访问地址:github.com/open-source-parsers/jsoncpp
存放地址:
/MAVSDK/build/default/third_party/jsoncpp
tinyxml2
软件包
访问地址:
github.com/leethomason/tinyxml2/
存放地址:
/MAVSDK/build/default/third_party/tinyxml2
zlib
软件包
存放地址:
/MAVSDK/build/default/third_party/zlib
curl
软件包
存放地址:
/MAVSDK/build/default/third_party/curl
如果编译配置过程失败,如果是因为某个第三方软件包下载不下来而中断,则
建议重新执行上述命令。这条命令是增量式的,可以多次执行此命令直至将所有第三方软件包下载成功。
4.
编译
cmake --build build/default -j8
注:我这台笔记本的cpu数是8,所以用了-j8。但是对于树梅派来说,应该查看它的cpu数(命令lscpu),如果cpu数是4,则上述-j8应该改成-j4。选择合适的cpu数做编译可以显著提高编译速度。
5.
安装
MAVSDK
链接库
a
)
system-wide
install
(系统级安装)
sudo cmake --build build/default --target install
这个命令将把
MAVSDK
的链接库和应用程序编译时所需要的头文件安装到
/
usr/local
目录中。
b
)
l
ocal
install
(
本地安装
)
c
make -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -Bbuild/default -H.
cmake --build build/default --target install
其中:c
make
语句中的
DCMAKE_INSTALL_PREFIX
变量指定了安装目录,这里的
=install
是
指定安装目录为MAVSDK/install
。