归档:使用 QtCreator 在 Windows 或 Linux 上为 Pixhawk 构建 ArduPilot¶
警告
存档文章
ArduPilot 不再支持 Qt Creator。
本文介绍如何设置 Qt Creator,以便在 Windows 和 Linux 上编辑 ArduPilot 代码并构建 Pixhawk 目标。
Linux 的先决条件¶
请按照 使用 Make 在 Linux 上构建 Pixhawk 下载所需的源代码 (ardupilot, PX4 固件 和 PX4NuttX)和工具链。
Windows操作系统的先决条件¶
请按照 使用 Make 在 Windows 上运行 Pixhawk 下载所需的源代码 (ardupilot, PX4 固件 和 PX4NuttX)和工具链。
确保没有安装 Cygwin(或至少将其从环境变量中移除),因为它会妨碍 PX4 工具链的运行。
安装 Qt Creator¶
下载 Qt 和 Qt Creator IDE Qt Creator 网站
按照说明在您的平台上安装集成开发环境。
在 Windows 上运行 Qt Creator¶
我们会尽量确保 Qt Creator 在运行时包含构建 ArduPilot 项目所需的所有环境变量。
进入本地 PX4 工具链目录,创建一个名为 qtcreator.sh.
CD /path-to--your-qt-creator-dir/bin qtcreator.exe
前往 toolchainms\ys\1.0 子目录,并复制文件 px4_console.bat 称为 px4_qt_creator.bat.在 开始 部分,使之成为
开始 如果 不是 存在 %WD%sh.exe 开始 未找到启动 %WD%sh --登录 -i -c qtcreator.sh 出口
可选项:创建 Windows 快捷方式 px4_qt_creator.bat 方便使用。
启动 Qt Creator px4_qt_creator.bat
在 Linux 上运行 Qt Creator¶
如果您安装了 gcc-arm 交叉编译器,并确保交叉编译器在您的路径中,那么只需启动 Qt Creator 即可。
创建项目¶
使用 Git 钩子更新项目¶
一个固定的项目是没有用的,因为文件可能被重命名,或被其他贡献者的提交添加或删除。
因此,让 Qt Creator 项目在每次来自远程版本库的新变更更新自己的版本库时更新是非常有用的。
我们的策略是,首先创建一个 "项目生成脚本",更新项目的 .文件 和 .包括 文件,然后让 Git 挂钩在每次认为合适时调用该脚本。
Windows 脚本¶
创建一个名为 generate_ardupilot_project.bat:
@echo 关闭
CD ArduCopter dir *.cpp *.hpp *.ipp *.c *.h /b /s >; ..\ArduPilot.files
CD ..
CD 天线跟踪器 dir *.cpp *.hpp *.ipp *.c *.h /b /s >>; ..\ArduPilot.files
CD ..
CD ArduPlane 目录 *.cpp *.hpp *.ipp *.c *.h /b /s >>; ..\ArduPilot.files
CD ..
CD APMRover2 dir *.cpp *.hpp *.ipp *.c *.h /b /s >>; ..\ArduPilot.files
CD ... *包括* /A:D /s /b >; ArduPilot.includes 目录 *图书馆 /A:D /s /b >>; ArduPilot.includes
Linux 脚本¶
创建一个名为 generate_ardupilot_project.sh:
CD 找到 ArduCopter . \( -名称 "*.cpp"; -o -名称 "*.hpp"; -o -名称 "*.ipp"; -o -名称 "*.c"; -o -名称 "*.h"; \) >; ./ArduPilot.files
CD ..
CD 天线追踪器查找 . \( -名称 "*.cpp"; -o -名称 "*.hpp"; -o -名称 "*.ipp"; -o -名称 "*.c"; -o -名称 "*.h"; \) >>; ./ArduPilot.files
CD ..
CD 查找 ArduPlane . \( -名称 "*.cpp"; -o -名称 "*.hpp"; -o -名称 "*.ipp"; -o -名称 "*.c"; -o -名称 "*.h"; \) >>; ./ArduPilot.files
CD ..
CD APMRover2 发现 . \( -名称 "*.cpp"; -o -名称 "*.hpp"; -o -名称 "*.ipp"; -o -名称 "*.c"; -o -名称 "*.h"; \) >>; ./ArduPilot.files
CD ... . -类型 d -名称 '包括'; >; ArduPilot.includes find . -类型 d -名称 '图书馆'; >>; ArduPilot.includes
Git 钩子¶
打开命令行界面,浏览到 .git/hooks 子文件夹。
更改 合并后 和 结账后 文件,使它们成为
#!/bin/sh
./generate_qt_creator_files.bat
出口 0
另一种方法是在 Git 钩子文件和生成脚本之间建立符号链接。以 Linux 为例,可以通过以下方式实现
ln -s ./generate_ardupilot_project.sh ./.git/hooks/post-merge ln -s ./generate_ardupilot_project.sh ./.git/hooks/post-checkout
建设项目¶
本节将讨论如何在 Qt Creator 中构建代码。
点击 项目 在左侧窗格中,确保您在 构建 & 运行 标签页。
点击 管理套件 在左上角。
首先点击 编译器 标签页,然后 添加 在编译器列表的右侧。为编译器选择一个易于识别的名称,并确保编译器和制作路径指向 PX4 工具链(Windows)或下载的 gcc-arm 交叉编译器(Linux)的可执行文件。同时选择 "GCC "作为错误解析器。
然后点击 套件 标签页。点击 添加 在右侧。
为您的构建工具包选择一个易于识别的名称,并确保填写正确的编译器(您刚刚添加的编译器)和 PX4 工具链中的调试器。
点击 申请.
回到 项目 页面,点击 添加套件 并选择刚刚添加的构建工具包。
现在你有了一个名为 "默认 "的 "构建配置"。您可以创建任意数量的 "构建配置",但我们现在将以 ArduCopter 构建为例。下一步是 编辑构建配置点击 添加 并选择 已选择克隆 下拉菜单。选择一个名称(如 "Copter")。
点击 详细信息 的 建设步骤 并输入 "px4-v2 -j2 "作为 提出论点.取消选择 目标.
点击 详细信息 的 清洁步骤 并输入 "px4-clean "作为 提出论点.取消选择 目标.
您也可以用同样的方法为 ArduPlane 等设备创建其他构建配置。点击 "Build Configurations(构建配置)"上方的徽标,即可在 "Build Configurations(构建配置)"之间快速切换。 运行 图标(绿色箭头)。
现在您可以移除 MSVC 或标准 GCC 构建工具包(点击工具包上的向下箭头,然后选择 拆除套件).
现在您已经准备好构建代码了。点击 编辑 在左窗格中编辑代码并浏览项目。单击 构建项目名称 在 建设 菜单(或 Ctrl+B)来构建代码。
应用编码风格指南¶
对 Qt Creator 编辑器进行配置,使其自动应用《Qt Creator》中描述的布局指南是非常有用的。 ArduPilot 样式指南.
缩进:单击 工具 菜单,然后选择 选项.随后,选择 文本编辑器 视图,然后 行为 制表符页面。您可以设置制表符策略(仅限空格)、制表符大小和缩进(4)。
其他有趣的设置可以在 C++ 在同一 选项 对话框您可以定义代码中特定部分的对齐方式(如赋值、开关/大小写、控制语句、大括号等)。
注释:为了遵守编码指南,您需要提供 Doxygen 格式的文档。Qt Creator 会自动生成一个 Doxygen 文档模板,如果您键入
/**
类、函数、......的定义之前