当前位置: 首页 > news >正文

Clion远程开发git触发“No such device or address”的解决方案

项目场景

环境:

  • 本地开发机: macos + CLion 2023.1.7
  • 远程开发机: Parallels Desktop for mac 20 + Ubuntu20.04 arm64
  • 项目类型:C++ CMake 工程,依赖通过 FetchContent 从私有 Git 仓库拉取的子模块

关键配置:
子工程通过 CMakeLists.txt 动态拉取,配置如下:

FetchContent_Declare(子工程GIT_REPOSITORY    http://xxxxxx.git   # 实际为私有仓库地址GIT_TAG           分支名              # 如 dev/mainGIT_SHALLOW       TRUE                # 仅拉取最新提交SOURCE_DIR        ${3RDPARTY_DIR}/子工程  BINARY_DIR        ${3RDPARTY_DIR}/子工程/build
)
FetchContent_MakeAvailable(子工程)

问题描述

现象:

  • ✅通过终端 SSH 连接远程主机,手动执行 cmake 编译成功。
  • ❌通过 CLion 远程开发模式执行 CMake 时失败,报错:
fatal: could not read Username for ‘https://x.x.x’: No such device or address

关键矛盾:
CLion 远程模式下 CMake 进程无法通过 Git 获取私有仓库的身份认证信息。


解决方案:

  1. 配置 Git 全局凭据存储
    在远程主机(Ubuntu)中执行:
git config --global credential.helper store
  1. 手动触发凭据缓存
    在远程主机中手动拉取一次子工程​:
git clone http://xxxxxx.git  # 使用实际仓库地址

按提示输入用户名和密码后,凭据会被记录到 ~/.git-credentials。

  1. 验证CLion远程编译
    重新通过 CLion 执行 CMake 构建,此时:CMake 调用 Git 拉取代码, Git 自动从 ~/.git-credentials 读取凭据, 子工程拉取成功,编译流程正常完成。

相关文章:

  • 数据库笔记(1)
  • Oracle adg环境下调整redo日志组以及standby日志组大小
  • 音视频学习:使用NDK编译FFmpeg动态库
  • Matlab 基于GUI的汽车巡航模糊pid控制
  • 榜单按行显示
  • Baumer工业相机堡盟工业相机的工业视觉是否可以在室外可以做视觉检测项目
  • Fellou智能体调研
  • c# 如何在集合中转换为子类集合
  • 监控易运维管理软件:架构稳健,组件强大
  • 使用 Navicat 将 Excel 导入数据库
  • .NET 8 API 实现websocket,并在前端angular实现调用
  • 代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
  • 设计杂谈-工厂模式
  • Excel-to-JSON插件专业版功能详解:让Excel数据转换更灵活
  • Matlab 基于GUI的图像去雾技术GlobalHisteq、LocalHisteq和Retinex
  • Nginx部署前端项目深度解析
  • 服务器共享文件夹如何实现外网访问
  • 日志 Slf4j , Java 中使用
  • CSS3(BFC)
  • 算法-单调栈
  • 高适配算力、行业大模型与智能体平台重塑工业城市
  • 学习时报头版:世界要公道不要霸道
  • 印控克什米尔地区再次传出爆炸声
  • 婚姻登记“全国通办”首日观察:数据多跑路,群众少跑腿
  • 优秀“博主”在上海杨浦购房最高补贴200万元,有何条件?
  • 中国词学研究会原会长、华东师大教授马兴荣逝世,享年101岁