CLion配置使用,连接远程开发环境

7,793 阅读5分钟

配置MinGW

下载安装MinGW

下载MinGW 这里必须注意的是下载压缩包,不要下载离线安装的版本,不然你会装到猴年马月,而且安装难度较大。 打开下载地址:[MinGW](sourceforge.net/projects/mi… targetting Win64/Personal Builds/mingw-builds/) 进入下载页面

image.png

注意:不要手贱点绿色按钮去下载!!! 往下拉,一直拉到下面的界面,然后就可以下载压缩包了。

image.png

当然,如果嫌弃这个速度太慢的话,可以使用网盘 下载链接:pan.baidu.com/s/1zd5hgyvX… 密码:obb8 下载了以后必须是解压啊,然后开始配置CLion。

配置CLion

打开CLion,左上角File-Settings-Build-Toolchains,然后点击 +

也就是配置自己的工具链(Win下使用MinGW)。下面的连接远程主机也是一种工具链(Remote Host)

image.png

进入toolchains增加配置,Environment选择MinGW,然后填入刚刚解压的MinGW64的路径:

C:\Users\71022\Documents\mingw64

image.png

然后CLion会自动帮你填上所有你该填的东西,点击OK,等调试的小虫子变绿就可以了。

image.png

当然,也会出现无法检测成功的情况,这时候就需要手动填写啦。 CMake一般会自动选择。 Make填入路径:

C:\Users\71022\Documents\mingw64\bin\mingw32-make.exe

C Compiler填入路径:

C:\Users\71022\Documents\mingw64\bin\gcc.exe

C++ Compiler填入路径:

C:\Users\71022\Documents\mingw64\bin\g++.exe

Debugger一般会自己填入,如果没有可以手动填:

C:\Users\71022\Documents\mingw64\bin\gdb.exe

编译执行单个文件

clion无法单独编译一个文件,以cmake编译执行,单独编译执行时需要修改CMakeLists,可以通过设置external tools单独编译执行

配置External Tools

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

配置快捷键

在这里插入图片描述

测试

在这里插入图片描述 在这里插入图片描述

使用CLion连接远程开发环境

由于需要在 Linux 平台下写 C 语言程序,但直接基于终端的 GDB调试,开发效率非常低。

在Windows平台下,使用CLion 远程调用 GDB 进行 linux 环境 C 语言开发非常方便。

配置远程服务器开放连接

这里使用ubuntu虚拟机,要开放ssh连接

1. 安装openssh-server

ssh包括ssh客户端openssh-client和ssh服务端openssh-server,通过openssh-client我们可以远程登录其他主机,而开放本机的ssh的服务我们需要有openssh-server,ubuntu默认安装了openssh-client,但没有安装openssh-server,因此我们无法在主机上通过ssh访问虚拟机内部的ubuntu。

安装openssh-server:sudo apt-get install -y openssh-server。

2. 修改配置文件

sshd服务默认不支持root用户远程连接,因此我们需要修改sshd的配置文件/etc/ssh/sshd_config,将PermitRootLogin由默认的without-password改为yes,然后用sudo service ssh restart或者sudo /etc/init.d/ssh restart来重新启动sshd服务。

3. 重启虚拟机

可以通过ps -ef | grep sshd来查看sshd服务是否已经启动。

ssh远程连接服务器

settings->tools->ssh configurations->配置ssh连接

image.png

此时可以通过终端ssh连接服务器

SFTP访问远程目录

File ---> Settings ---> Deployment,配置远程连接,先配置Connection,再点击Mappings配置映射关系

image.png

在CLion主页面搜索Remote Host,点击出现服务器文件目录

image.png

连接远程主机

File ---> Setting ---> Build, Execution, Deployment ---> ToolChains--->Remote Host ---> Credentials,选择要连接的 ubuntu 主机

image.png

部署/同步文件目录

将项目整体 upload 到 ubuntu 服务器对应文件夹

image.png

远程服务器配置

注意服务器需要安装gcc、g++、gdb、cmake这些东西,同时版本尽可能高一点

CMake安装

apt install cmake这种安装方式的cmake版本较低,可能无法满足要求,使用wget官网下载:link.zhihu.com/?target=htt…

解压缩:tar -zxv -f cmake-3.19.3.tar.gz

安装openssl:sudo apt install libssl-dev openssl

进入目录,执行:./bootstrap

没有错误,执行:sudo make -j8

完成源码编译后,执行:sudo make install

输入:cmake --version查看版本

需要注意cmake版本在win环境与linux环境下尽量一致

配置Clion Remote Host make路径

在 ubuntu 中,linux 的 /usr/bin 会保存着类似 windows 10 快捷方式的 shortcut,CLion 及很多其他软件会自动在 /usr/bin中寻找对应的 shortcut;如果你安装了有关包,但/usr/bin 中没有,则CLion等软件不会找到。

此时,就需要用到 linux 的ln命令,创建连接到安装包安装位置的shortcut:

ln -sf /你的CMake安装位置/bin/* /usr/bin/

配置CLion CMake使用远程服务器

Build,...->CMake,在工具链中选用远程主机

image.png

设置远程GDB调试

主界面右上角编辑配置

image.png

增加远程debug

image.png

注意此处填写tcp协议,并且,一定要填写 端口号target remote args:tcp:192.168.1.110:1234

image.png

进入开发目录,输入命令

cd /usr/local/sun_test
sudo mkdir build
cd build
sudo cmake .. -DCMAKE_BUILD_TYPE=Debug
sudo make

接下来, 在终端运行如下命令(OS是你生成的可执行文件):

gdbserver :1234 /usr/local/sun_test/build/OS

开始调试,运行 gdbserver 监听 1234 端口。可以直接在windows10平台进行打断点、调试,会在ubuntu下显示

其它问题

增加add_executable到CMakeLists

使用插件C+ Single File Execution

输出乱码

改成GBK或UTF-8,不过运行与debug时需要来回改动

远程代码补全

首先确保远程连接工具链ToolChains中的CMake选择了远程主机(自己配置的Remote Host)

之后点击Help| Find Action, 输入Registry,之后勾选clion.remote.tar.dereference

clion的remote自动补全是将远程Liunx下的相关头文件缓存到本地,而这个缓存是先使用tar打包,然后下载到本地,然而Linux上的一些头文件实际上是软链接,tar打包的时候会按软链接打包,下载到本地解压后自然无法解析。勾选clion.remote.tar.dereference是让tar命令 Enable dereference (-h) and ‘–hard-dereference’ tar arguments这样就可以解析软链接到对应文件,下载到本地的就是文件而不是软链接。

修改之后再Tool -> Resync with remote hosts,如果还是不行就把本地缓存删掉重新Resync。 本地缓存一般在C:\Users\用户名\AppData\Local\JetBrains\CLion2021.1.remote下,在Problems中也可以看到缓存路径(一般是` Cannot open file ***路径,Permission Denied)