示例环境:

  • 云主机(CLion client):Ubuntu 20.04 LTS + CLion-241.14494.229 (CLion 2024.1 RC)
  • 本机(CLion host): macOS Sonoma 14.5 + CLion Build #CL-241.17890.19 (CLion 2024.1.3)

# 远程环境构建

本节将从一台没有任何开发环境的纯净 Ubuntu 开始配置开发远程开发 C/C++ 的开发环境,读者可以根据自己的实际情况自由选择从何处开始。

# 配置 C/C++ 环境

首先更新系统,保证后续安装的软件都是最新的:

sudo apt update
sudo apt upgrade

然后就是安装开发 C/C++ 的必要工具:

sudo apt install build-essential gdb cmake

可以通过以下命令查看各个工具的版本:

❯ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
❯ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
❯ gdb --version
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
❯ cmake --version
cmake version 3.16.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).

如果想使用 LLVM+Clang 作为构建工具也可以(以 llvm-12 为例):

sudo apt install llvm-12 clang-12 lldb-12
# 默认使用 12 版本的 llvm
sudo update-alternatives --install /usr/bin/llvm llvm /usr/bin/llvm-12 100 # 这行可能会失败
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-12 100
sudo update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-12 100

如果 sudo update-alternatives --install /usr/bin/llvm llvm /usr/bin/llvm-12 100 失败,参考 Troubleshooting-4

# 配置 CLion Remote Client

按如下步骤操作,如果在远程主机上的下载过程没有问题,那么在下载完成后 CLion 将自动打开在第四步中指定的目录,如果没有打开,也可以通过第一步的页面打开。

配置CLion远程环境

Jetbrains 的 EAP(抢先体验计划,Early Access Program)版本是一个可以免费使用且功能无阉割的抢先试用版本,可能会有些不稳定且需要每 30 天重装一次,有条件的话可以在第四步中选择 RC(Remote Client)版本安装。

如果在第四步后,远程主机的下载过程非常缓慢或下载失败,参考 Troubleshooting-1

# 配置 CMake

Settings -> Build, Execution, Deployment -> Toolchains

先删掉默认配置,然后新增一个 Remote Host 的配置:

CMake配置

如果按照前面的步骤装好了 CMake 等工具,此处应该可以直接识别出各种工具的版本,如上图所示。然后配置 CMake 环境即可:

cmake配置

重新打开远程环境,此时 CLion 就可以正确识别 CMake 项目并正常编译 & 调试了

# Troubleshooting

# 1. 远程环境下载 CLion Client 卡住 / 下载缓慢

由于下载站是 Jetbrains 官方站,国本部分时间网络环境可能不太好,导致下载进度缓慢或下载失败,可以按如下步骤操作:

  1. 登入远程主机,在用户家目录下 cat wget-log

  2. 在日志中找到实际的下载地址:https://download.jetbrains.com/cpp/CLion-241.14494.229.tar.gz

  3. 本地下载后通过下面操作上传到云主机中:

    上传RC

# 2. 无法识别 CMake 项目

未配置到 Toolchains 导致的,参考配置 CMake

# 3. CMake 版本不匹配

默认安装的 CMake 版本比较低,如果项目的 CMake 的最低版本要求比价高的话需要手动升级 CMake:

  1. 官网下载所需版本的 CMake:cmake-3.27.6-linux-x86_64.tar.gz
  2. 上传到云主机中并解压: tar zxvf cmake-3.27.6-linux-x86_64.tar.gz
  3. sudo mv cmake-3.27.6-linux-x86_64 /opt/cmake-3.27.6
  4. sudo ln -sf /opt/cmake-3.27.6/bin/* /usr/bin/
  5. 使用 cmake --version 测试版本是否成功更新

# 4. 找不到 llvm-12

如果 sudo update-alternatives --install /usr/bin/llvm llvm /usr/bin/llvm-12 100 失败,是因为这样下载的 ``llvm 没有提供一个统一的管理入口,各个 llvm` 工具是分开安装的,可以通过下述命令列出所有工具:

ls /usr/bin/llvm*12

如果不需要用到 llvm-as 这类工具的话可以不用管他,如果需要用到的话,则需要单独为这些工具设置 update-alternatives ,例如:

sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-12 100
sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-12 100
...
# 依此类推,添加所有你需要的工具

# 5. 调试时无效断点问题

如果发现调试时断点无法断下来,可以尝试更换成 ToolChain:

使用本地toolchain


更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Gality 微信支付

微信支付

Gality 支付宝

支付宝