CLion如何实现跨C++ Makefile项目的重命名重构操作?
CLion跨Makefile项目同步重构的解决方法
CLion的重构功能仅作用于当前窗口内已完成索引的项目,两个项目分窗口打开时索引完全独立,因此无法跨窗口同步修改,可通过以下方案解决:
方案1:合并到同一工作空间(最推荐,适配所有重构操作)
- 打开其中任意一个项目的CLion窗口,点击顶部菜单栏
文件→打开,选中另一个项目的根目录 - 在弹出的操作选择框中选择「附加到当前项目」,不要选择「新窗口打开」,确认后两个项目会同时展示在左侧项目栏
- 进入
设置→构建、执行、部署→Makefile,分别检查两个项目的头文件搜索路径、编译参数配置是否完整,确保CLion可以正确识别库项目的符号关联 - 等待全量索引完成后,选中库中需要重命名的getter方法,按下快捷键
Shift+F6触发重命名操作,勾选弹窗中的「搜索跨项目引用」选项,执行后即可自动同步修改应用项目中的所有调用点
方案2:编译数据库联动(适合不希望合并窗口的场景)
- 分别为两个项目生成编译数据库文件
compile_commands.json:Makefile项目可通过bear工具生成,在项目根目录执行bear -- make即可输出对应文件 - 打开库项目的设置页,进入
构建、执行、部署→编译数据库,将应用项目的compile_commands.json添加到导入列表中 - 等待CLion完成索引更新后,执行重命名操作即可识别到应用项目的调用点,修改完成后需要手动切换到应用项目窗口保存修改内容
提示:如果两个项目长期存在依赖关系,可在同一工作空间的「项目依赖」设置中,将应用项目配置为依赖库项目,CLion会自动跟踪符号关联,后续所有重构、查找引用等操作都可以直接跨项目生效。
内容的提问来源于stack exchange,提问作者Joseph Larson
相关产品推荐
相关产品推荐

