Mac使用CLion连接Linux进行远程开发
创始人
2025-07-07 01:52:08
0

一、背景

笔者有时候需要使用C++开发一些命令行之类的可执行程序放到Linux服务器上部署运行,因为C++天然的跨平台特性, 之前一直都是使用两套开发环境,本地Mac电脑一套,远端Linux一套,在本地开发调试好之后,再到远端Linux进行编译部署测试。

可在最近开发的过程需要使用到一些Linux当中的一些特定的库,如果把这些特定的库移植或编译到本地Mac搭建环境的话必定比较耗时, 而且自己本身才疏学浅,还不一定能搭建成功,于是笔者便萌了使用Clion进行远程开发的想法,说干就是干,不试不知道,搭建成功后用起来那是真的爽...

二、远程开发环境搭建

首先这里简单讲下远端Linux主机的开发环境搭建,笔者使用主机是ubuntu系统。

1.安装C++相关编译边境

直接通过一下命令行安装即可:

sudo apt install gcc g++ gdb  -y

安装成功后我们可以通使用命令查看下安装的版本,例如通过命令gcc -v即可查看安装gcc的版本。

2.安装cmake

同样使用apt命令安装一下即可:

 apt install cmake

需要注意的是这里安装的Cmake版本可能有点低,一般来说都会比本地Mac的低不少,建议开发的时候在CMakeLists.txt适当降低使用的Camke版本, 当然如果一定要使用高版本的Cmake,那么你也可以通过其他的途径安装一下高版本的Cmake即可。

3.安装rsync

rsync也是需要安装的,不然在配置Clion进行远端调试的时候会警告rsync没有安装,同样使用apt命令安装即可:

sudo apt-get install rsync xinetd

自此,远端Linux的编译开发环境大致就完成了。

三、本地CLion配置

下面我们说说本地系统的开发工具CLion的配置。

1.配置Toolchains

依次打开 settings -> Build, Execution, Deployment -> Toolchains ,点击 + 号

选择 Remote Host,然后点击右侧的小齿轮设置按钮

2.配置远端服务器信息

在弹出框中点击 + 号,添加一个服务器,在这里我们需要填入你远端服务器的IP、登陆用户名、登陆密码等相关信息。 填写完毕之后点击一下Test Connection按钮测试一下是否能连接成功。

成功连接后点击确定,系统会自动检测远程的gcc、Cmake等相关环境,如果检测成功的话一般就是下图这样子的。

此时我们的CLin就有了两套编译环境,一套是本地的默认编译环境,一套是远端的编译运行环境,我们想要用那一套环境就把那套环境移动的第一位即可。

至此我们的环境配置就完成了,效果如何?赶紧程序员鼻祖工程Hello World走起...

四、环境测试

直接在本地使用CLion创建一个默认的Hell World工程,发现报错如下:

很明显本地使用Cmake最低版本要求是3.21,而Linux的远端Cmake安装的版本最高只支持3.18.4,这个问题在之前安装 Cmake的时候已经提示注意了,要么在CMakeLists.txt降低使用的最低版本,要么升级远端的Cmake,很明显第一种方式简单快捷。

解决掉这个问题后我们伟大的Hello World就能跑起来啦,笔者点击运行成功后在控制台输出如下:

其中/tmp/tmp.D7BCB8d9w2/cmake-build-debug/HelloTest就是远端Linux编译的结果产物,我们在远端Linux是可以找到这个文件的。

同时我们还可以直接在本地打断点进行调试,就是这么爽...

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...