MIT Cheetah-Software编译手记:搞定Qt5.10.0路径、LCM依赖与那些诡异的C++报错

MIT Cheetah-Software编译手记:搞定Qt5.10.0路径、LCM依赖与那些诡异的C++报错 MIT Cheetah-Software编译实战Qt路径配置、LCM依赖与C报错深度解析1. 环境准备与依赖管理在Ubuntu 20.04环境下编译MIT Cheetah-Software首先需要确保系统基础环境配置正确。不同于普通开源项目这个四足机器狗的控制系统对Qt版本、LCM消息中间件和Eigen库有着严格的要求。关键依赖版本要求Qt 5.10.0 LCM 1.4.0 Eigen 3.3.7注意Qt 5.10.0是项目明确要求的版本其他版本可能导致界面兼容性问题。建议在全新环境中安装避免与其他Qt项目产生冲突。安装基础开发工具链sudo apt update sudo apt upgrade -y sudo apt install -y build-essential cmake git libglib2.0-dev \ mesa-common-dev freeglut3-dev coinor-libipopt-dev \ libblas-dev liblapack-dev gfortran2. Qt 5.10.0定制化安装Qt作为图形界面框架其路径配置是编译过程中的第一个拦路虎。官方提供的find_qt_path.sh脚本常因路径不匹配导致编译失败。正确安装步骤下载Qt 5.10.0离线安装包约2.3GB赋予执行权限chmod x qt-opensource-linux-x64-5.10.0.run执行安装并仅勾选以下组件Qt 5.10.0 → Desktop gcc 64-bitQt ChartsQt Data Visualization安装完成后需要修改项目中的路径查找脚本# 修改Cheetah-Software/scripts/find_qt_path.sh sed -i s/Qt5/Qt5.10.0/g scripts/find_qt_path.sh常见问题解决方案问题现象解决方法找不到qmake检查~/.bashrc中QT_PATH环境变量界面无法启动安装libxcb-xinerama0sudo apt install libxcb-xinerama0插件加载失败设置QT_PLUGIN_PATH指向Qt5.10.0/plugins3. LCM消息中间件网络问题攻坚LCMLightweight Communications and Marshalling是项目实时通信的核心组件其安装过程常因网络问题受阻。稳定安装方案使用Git镜像源加速克隆git clone https://gitee.com/mirrors/lcm.git手动编译安装cd lcm mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease .. make -j$(nproc) sudo make install验证安装lcm-gen --version提示如果遇到Python绑定问题需确保安装了python3-devsudo apt install python3-dev4. C编译报错深度解析项目采用严格的编译选项将警告视为错误(-Werror)这导致许多开发者卡在最后一步。以下是典型报错及解决方案4.1 stringop-truncation错误error: ‘char* __builtin_strncpy()’ specified bound equals destination size [-Werrorstringop-truncation]解决方案 修改项目根目录CMakeLists.txt# 将 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror) # 改为 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall -Wextra)4.2 内存不足引发的编译中断fatal error: Killed signal terminated program cc1plus临时交换分区创建sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile4.3 缺失stropts.h头文件fatal error: stropts.h: No such file or directory变通解决方案sudo touch /usr/include/stropts.h echo #include sys/ioctl.h | sudo tee -a /usr/include/stropts.h5. 编译优化与调试技巧经过上述步骤后推荐采用以下编译策略首次编译使用单线程make -j1成功后改用多线程加速make -j$(nproc)针对性重新编译touch src/common/CMakeLists.txt make性能优化参数# 在CMakeLists.txt中添加 set(CMAKE_CXX_FLAGS_RELEASE -O3 -marchnative) set(CMAKE_C_FLAGS_RELEASE -O3 -marchnative)6. 仿真环境验证成功编译后通过以下命令启动仿真./sim/sim ./user/MIT_Controller/mit_ctrl m s常见仿真问题排查现象检查点无四肢显示确认MIT_Controller是否正确编译关节抖动检查simulator.ini中的PD参数无法站立验证robot_params.yaml中的质量参数在VMware环境中建议分配至少4核CPU和8GB内存以获得流畅的仿真体验。如果遇到图形渲染问题可以尝试改用VirtualBox或物理机安装Ubuntu。