解决Windows下Pixhawk(PX4)编译提示没有cmake的问题

2023-05-16

多谢楼下的提示,原来是64位系统下环境变量中包含(x86)的问题,所以下面的解决方法也是错的,看看就好了。

以前安装cmake的时候还会注意一下安装选项,后来就潜意识认为自己会了,检查的时候就不管这个了。

以前没有踩过的咋样的坑,以后算是知道了。


进行Pixhawk的开发好久了,最早的时候使用的是Windows,各种问题,后来转到Ubuntu下进行开发,十分顺利。

Ubuntu开发环境使用起来多有不便,还是需要使用Windows完成很多工作,再次搭建PX4开发环境竟然出现了一点问题,大致是cmake没有安装。

作为新开博客的第一篇文章,就让我们来解决这个问题吧。


按照官方的说明安装

APM:http://ardupilot.org/dev/docs/building-px4-with-make.html

PX4:http://dev.px4.io/starting-installing-windows.html

两个都可以,但是APM的更详细一点,只不过当前(2016.9)APM使用的还是make,px4使用的是cmake,所以按照px4的教程更合适。


按照官方的说法

Warning Although a Windows toolchain is available,its not officially supported and we discourage its use. It isunbearably slow during Firmware compilation and does not support new boards like Snapdragon Flight. It also cannot run the standard robotics software packages many developers use to prototype computer vision and navigation. Before starting to develop on Windows, consider installing a dual-boot environment with Ubuntu.

并不是特别支持Windows下的开发,但是既然需要,还是试着解决这个问题。

其实需要的就是

  • PX4 Toolchain Installer v14 for Windows Download (32/64 bit systems, complete build system, drivers)
下载下来的安装就可以了。


直接在eclipse中导入px4的project,之后使用make px4fmu-v2_default 编译,但是出现问题


大致就是提示cmake没有安装

Tools/check_cmake.sh: line 2: cmake: command not found
Makefile:44: Not a valid CMake version or CMake not installed.

提示的是在linux下使用apt-get来安装,实际使用中确实是这样的,但是windows下只能到官网下载

来到https://cmake.org/download/


问题来了,有两个版本,我使用的系统为64位的win10,既然有64位的肯定安装64位的。

但是记得之前曾经在Windows上顺利编译,当时使用的x86的cmake,不管了,问题实质应该是一样的。


为了简化问题,eclipse下编译会发生不可预知的问题,那么就使用命令行来编译,简化问题。


同样的问题出现了,依然提示没有cmake。


那么分析问题,这个cmake没有是一类通用问题,开源飞控毕竟是一个小的领域,所出现的问题远远无法与其他诸如c++相比,所以搜寻的思路是查找cmake相关问题。

但是分析这个问题先来看看问题他提示的地方 Tools/check_cmake.sh: line 2: cmake: command not found

打开源代码找到这个地方

#!/bin/bash
cmake_ver=`cmake --version`

if [[ $cmake_ver == "" ]]
then
  exit 1;
fi

if [[ $cmake_ver == *" 2.8"* ]] || [[ $cmake_ver == *" 2.9"* ]] || [[ $cmake_ver == *" 3.0"* ]] || [[ $cmake_ver == *" 3.1"* ]]
then
  exit 1;
fi

exit 0;

使用cmake --version来获取cmake版本号,由于这个是使用的make编译,所以期望在命令行下面可以获取这个命令

但是如下


即使windows CMD下也是如此


所以就是这个命令无法执行。

再来看看编译的makefile是怎样的


调用这个shell脚本,但是对于这个toolchain的不够了解导致并不知道实际的调用过程是怎样的。

根据其他人和之前的经验,使用这个是可以编译的,那么我这个就是一个特殊情况,是因为这台电脑中其他程序修改了某些变量导致这边无法正确调用系统变量,那么这个变量是什么呢?也许换一台电脑就可以了。但是不知道


查找toolchain文件夹下面的make文件,make是一直都在的,但是cmake是没有的,所以怎么调用呢?


那就要使用系统变量来调用


很显然环境变量中是有cmake的选项的,但是为什么没有正确调用cmake,或者问题就转化为怎么使用命令行调用cmake.



到群里面询问了一下:问题在于是否以管理员身份安装软件。

于是重新以管理员身份安装cmake

使用cmake 3.6 x64的结果


不行!


使用cmake 3.6 x86 


依然不行! 


按照linux的说法使用保险的3.4版本 cmake-3.4.2-win32-x86.exe


奇迹出现了!!!  

eclipse下也是如此


是的就是cmake版本问题,甚至都与是否以管理员身份安装无关。


3.4可以,那么3.5是否可以呢?我们来试试。

安装的时候我们看到这个要求卸载cmake 3.4以前,再看官方下载页面的说明


我们都知道这个toolchain是好几年以前的了,所以最新的不支持很正常,而3.2等版本肯定是可以的,既然我们不需要使用最新的cmake特性,何必尝试最新的版本呢。

Windows下受限于这个版本的问题,但是linux下就不存在这个问题,可是apt-get安装最新的版本。


总结起来:就是是因为最新的cmake版本和toolchain不兼容,那么使用cmake 3.4就可以了。

下载地址为 https://cmake.org/files/v3.4/

https://cmake.org/files/v3.4/cmake-3.4.2-win32-x86.exe


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决Windows下Pixhawk(PX4)编译提示没有cmake的问题 的相关文章

  • 可靠性udp传输大文件

    高级计算机网络大作业 可靠性udp传输大文件 实验数据zstd压缩1G文件 xff08 延迟100ms 丢包1 xff09 0 1G文件 xff08 延迟100ms 丢包1 xff09 0 01G文件 xff08 延迟100ms 丢包1 x
  • 一些奇怪问题的解决汇总

    vscode ssh远程连接 问题描述 xff1a Setting up SSH Host 192 168 78 133 details Initializing VS Code Server 一开始尝试了网络的各种方式 xff0c 比如删
  • 控制系统--系统结构图

    结构图基本单元 信号线 表示信号流向 引出点 表示信号引出 xff0c 被引出信号与原信号完全相同 或 从同一位置引出信号完全相同 比较点 将所有输入信号做代数运算 方框 表示信号经过传递函数为 H s
  • 字符串及处理之三: 使用TCHAR系列方案

    使用TCHAR系列方案编写程序 TCHAR是一种字符串类型 xff0c 它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码 xff0c 不需要使用繁琐的宏定义来包含你的代码 TCHAR的引入 xff0c 主要是在Tch
  • Chrome解决“github.com拒绝了我们的访问请求”

    目录 1 网站查询特定IP 2 host文件修改 3 刷新DNS 如果你在Chrome访问github com时出现以下错误 xff1a 本博主之前的Chrome和Edge都无法访问github官网 xff0c 然后就来到了万能的C站找到了
  • STC12C5A60S2_LCD1602驱动

    文章目录 LCD1602 HLCD1602 cmain c LCD1602 H 代码如下 xff1a span class token macro property span class token directive hash span
  • 猿创征文|机器学习实战(8)——随机森林

    目录 1 随机森林 2 极端随机树 3 特征重要性 4 提升法 4 1 AdaBoost 4 2 梯度提升 机器学习实战 xff08 7 xff09 中我们已经提到 xff0c 随机森林是决策树的集成 xff0c 通常用bagging方法训
  • 总结2014——迷茫以及迷茫过后的坚持

    首先 xff0c 借用一句话和大家共勉 xff1a 少一些功利主义的追求 xff0c 多一些不为什么的坚持 xff01 xff01 不知不觉15年也快过了1个月了 xff0c 还是想着要为14年做一下总结 xff1a 记录一下自己的历程 今
  • 汇编总结:lea指令

    ea指令变种 按大小分类 leaw 2个字节 leal 4个字节 leaq 8个字节 lea的用法 leaq a b c d rax 首先lea指令是mov指令的变种 xff0c 据说 xff0c lea指令是x86体系结构中 xff0c
  • CMake语法—选项(option)

    CMake语法 选项 xff08 option xff09 1 选项 1 1 定义 1 2 说明 variable 选项名help text 描述 解释 备注value 选项初始化值 xff08 除ON而外全为OFF xff09 2 应用注
  • C++工程:总结 CMake 添加第三方库依赖方式git submodule、 find_library、FetchContent、CPM等

    CMake 已经成为了C 43 43 工程管理的主流方式 xff0c 功能非常强大 xff0c 现在大多数的 C 43 43 库都已经支持CMake xff0c 下面以 jsoncpp 为例 xff0c 介绍几种引入第三方库的方式 1 代码
  • 医学图像——DCMTK、VTK、ITK、RTK、SimpleITK

    1 引言 https github com SINTEFMedtek ITK VTK xff0c 相关童鞋应该很熟悉的 xff0c 而CTK是一个较新的界面库 xff0c 主要用于方便前面两个 TK的界面设计 xff0c 当然也可以作为通用
  • C++中的volatile

    volatile的本意是 易变的 volatile关键字是一种类型修饰符 xff0c 用它声明的类型变量表示可以被某些编译器未知的因素更改 xff0c 比如操作系统 硬件或者其它线程等 遇到这个关键字声明的变量 xff0c 编译器对访问该变
  • 3DTiles】关于GeometricError几何度量误差

    在 3DTiles 的官方文档中详细介绍了关于几何度量误差 Geometric Error 的一些理念和内涵 xff0c 概括来说可以翻译为如下定义 xff1a 几何度量误差 xff0c Geometric Error xff0c 简称 G
  • glPixelStorei 详解 包括像素传输

    3 glPixelStore 像glPixelStorei GL PACK ALIGNMENT 1 这样的调用 xff0c 通常会用于像素传输 PACK UNPACK 的场合 尤其是导入纹理 glTexImage2D 的时候 xff1a C
  • ESLint 简介

    ESLint简介 ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具 xff0c 使用它可以避免低级错误和统一代码的风格 如果每次在代码提交之前都进行一次eslint代码检查 xff0c 就不会因为某个字段
  • IOS VasSonic 粗略见解

    因为项目需求需要在本地缓存html页面 xff0c 优化用户体验 了解到VasSonic 百度了下源码解析但是没有发现IOS的所以只有自己慢慢摸索了 一 类的简单关系 1 SonicEngine 引擎类 代理为 UIWebViewContr
  • axios的详细讲解

    一 axios的特性 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端 xff0c 简单的理解就是ajax的封装 特性 xff1a 从浏览器中创建 XMLHttpRequests从 node js 创建
  • 无人机飞控算法-姿态估计-欧拉角-旋转矩阵-四元数

    无人机飞控算法 姿态估计 此系列记录了我理解的卡尔曼滤波从0到1的过程 xff0c 从姿态估计到位置估计 xff0c 我们从核心点一个个出发 xff0c 并结合实际模块的应用来一一揭开卡尔曼滤波的神秘面纱 提示 xff1a 在系列文章中 x
  • BMP格式详解

    介绍 数字图像在外存储器设备中的存储形式是图像文件 xff0c 图像必须按照某个已知的 公认的数据存储顺序和结构进行存储 xff0c 才能使不同的程序对图像文件顺利进行打开或存盘操作 xff0c 实现数据共享 图像数据在文件中的存储顺序和结

随机推荐

  • WinHex使用方法详解

    WinHex是由X Ways软件技术公司 xff08 官方网站http www x ways net xff09 开发的一款专业的磁盘编辑工具 xff0c 该工具文如其名 xff0c 是在Windows下运行的十六进制 xff08 hex
  • three.js流动线

    效果 xff1a 先看最基本的 function initThree el options options 61 options const t 61 this appInstance 61 this const width 61 el o
  • OpenGL之FBO(Frame Buffer Object)和多次离屏渲染

    第一次听到离屏渲染的时候觉得很高级 xff0c 遥不可及 xff0c 直到后来做高斯模糊的时候 xff0c 需要通过两次处理来节省性能 xff0c 一直玩一次渲染处理的我这时候才认识FBO xff0c 继而明白了离屏渲染 xff0c 今天抽
  • Android驱动(一)硬件访问服务学习之(四)Android应用程序APP编写

    硬件平台 xff1a tiny4412系统 xff1a Android 5 0 2编译器 xff1a arm linux gcc 4 5 1 xff08 一 xff09 Android通过JNI访问硬件 http blog csdn net
  • gl_FragCoord 的含义

    gl FragCoord 表示当前片元着色器处理的候选片元窗口相对坐标信息 xff0c 是一个 vec4 类型的变量 x y z 1 w xff0c 其中 x y 是当前片元的窗口坐标 xff0c OpenGL 默认以窗口左下角为原点 xf
  • RoboMaster机甲大师——视觉组——计算平台的选型与感想(主流几款)

    RoboMaster机甲大师 视觉组 计算平台 xff08 工控机 xff09 的选型与感想 xff08 主流几款 xff09 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介 xff1
  • 如何在Linux命令行下发送和接收UDP数据包

    众所周知 在传输层有两个常用的协议 TCP 和 UDP 本文介绍在 Linux 命令行下 如何使用 nc 命令发送或接收 UDP 数据包 这些命令的用法对调试 UDP 通信程序将有所帮助 1 问题的提出 编写了一个使用 raw socket
  • 抽丝剥茧聊Kotlin协程之聊聊Job和SupervisorJob的区别

    1 前言 随着协程的普及 xff0c 协程知识越来越被面试官青睐 首先 xff0c 协程的面试题一般都很简洁 xff0c 一两句简单的话就能把问题描述清楚 xff0c 其次于面试官而言 xff0c 协程框架中精妙的数据结构与算法可以很好的考
  • Android 手机运行 JoyCon Droid 并且使用 Amiibo

    PS 整个过程耗时耗力 xff0c 经常会断开连接 xff0c 有些不想搞那么麻烦的人就不要搞了 xff0c 以免遭受刺激啊 xff0c 哈哈 前提 如果想使用并刷Amiibo xff0c 必须同时满足以下几个条件 xff1a 1 蓝牙版本
  • STM32F10X系列通用OTA bootloader移植与使用指南

    基于STM32F10X系列通用OTA bootloader原理 移植与使用全指南 写在前面这几天我都做了什么呢 xff1f 有什么感受 xff1f 开始移植 写在前面 从2020 1 26到2020 1 30这5天 xff0c 我的较多研究
  • FreeRTOS笔记——链表数据结构

    FreeRTOS链表实现 0 概述1 关键结构体1 1 链表基础知识1 2 链表数据结构1 3 链表操作 0 概述 部分内容参考野火的FreeRTOS相关开发资料 xff0c 在此做一个学习记录总结 1 关键结构体 FreeRTOS源码实现
  • pyqt5 状态栏(statusBar)永久显示

    在主界面加了一个状态栏 xff0c 作为简易操作说明 xff0c 但是点击菜单栏时 xff0c 不管是否选中菜单栏下的选项 xff0c 状态栏都会消失 网上给了很多关于永久显示状态栏的方法 xff1a self status 61 self
  • 树莓派4B部署Intel Realsense T265相机

    硬件 xff1a 树莓派4B 8G内存 系统 xff1a Ubuntu 20 最初我是参照这篇博客树莓派上部署英特尔深度相机IntelRealsense T265 xff08 他人8月7日刚写的 xff09 我树莓派上librealsens
  • Phpstorm2018 永久激活

    原文地址 1 安装phpstorm xff0c 安装包请自行官网下载 http www jetbrains com phpstorm download 2 下载JetbrainsCrack jar文件 xff0c 存放至你的phpstorm
  • VMware + fedora25下安装QT5.8

    失业了 xff0c 搞单片机太久忘了这个linux xff0c 但为了重新找工作没办法重新学习 xff0c xff1a xff08 这几天手提上安装VMware和Fedora25 xff0c 把QT5 8安装了 xff0c 过程曲折 xff
  • Reproducible Research in Computational Science

    Reproducible Research in Computational Science http www csee wvu edu xinl source html It doesn 39 t matter how beautiful
  • 无人机学习所遇问题动态记录

    问题一 QGC显示 xff1a Detected 0 radio channels To operate PX4 you need at least 5 channels 原因 xff1a RC插错位置 解决方案 xff1a SBUS对应的
  • 四轮全向轮是不是比麦轮的控制难度大?

    经过一番搜索 xff0c 就发现一个做四轮全向小车的大佬 xff0c 其他都是四轮麦轮 xff0c 做四轮小车是麦轮比较好 xff1f 优点有哪些呢 xff1f
  • NoValidHost: No valid host was found. : NoValidHost_Remote: No valid host was found.

    openstack的queens版本创建实例的时候实例状态ERROE 查看日志以下错误 2019 12 10 11 32 25 436 4805 WARNING nova scheduler utils req d3743b51 2f00
  • 解决Windows下Pixhawk(PX4)编译提示没有cmake的问题

    多谢楼下的提示 xff0c 原来是64位系统下环境变量中包含 xff08 x86 xff09 的问题 xff0c 所以下面的解决方法也是错的 xff0c 看看就好了 以前安装cmake的时候还会注意一下安装选项 xff0c 后来就潜意识认为