求助:Eclipse Oxygen中.cproject环境变量丢失,Yocto构建清理所致
解决Yocto构建清理误删Eclipse CDT项目文件的方案
我最近在运行Yocto recipes进行构建时碰到了个头疼的问题:构建前的源码目录清理操作,会把同目录下的Eclipse CDT项目文件(.project和.cproject)一并删掉,每次构建完都得重新配置CDT项目,太折腾了。
后来我修改了构建脚本,加了个简单的备份恢复逻辑,现在已经解决了大部分问题,分享下我的操作:
- 问题根源:Yocto构建前的清理命令(比如
bitbake -c clean)会递归清理源码目录下的非源码文件,但Eclipse的这两个项目配置文件不在Yocto的保留列表里,所以被误删了。 - 解决方案:在执行清理和构建前,把
.project和.cproject备份到源码目录外的安全位置;等构建完成后,再把这两个文件恢复回原目录。 - 当前效果:现在除了项目构建配置里自定义的环境变量还没正常恢复外,CDT项目的其他结构、配置都能完整保留,不用再重新创建项目了。
给大家看一段我脚本里的核心逻辑示例:
# 先创建备份目录并备份关键文件 SAFE_BACKUP="/opt/yocto-eclipse-backups" mkdir -p $SAFE_BACKUP cp .project .cproject $SAFE_BACKUP/ # 执行Yocto的清理与构建流程 bitbake -c clean my-custom-recipe bitbake my-custom-recipe # 构建完成后恢复项目文件 cp $SAFE_BACKUP/.project $SAFE_BACKUP/.cproject ./
内容的提问来源于stack exchange,提问作者Mark Garstin
相关产品推荐
相关产品推荐

