工作环境说明:
办公电脑是win10,装的的win版本的2021.2的CLion;远程主机是linux服务器。
平时工作就是在办公电脑的CLion上写代码,要求实时同步到远程linux服务器指定路径。
平时阅读代码时会不停地在CLion上一个proj下切换不同的模块,即对某一个模块的CMake文件加载。
设置:
1、Toolchains使用WSL作为默认
WSL是windows系统提供的一种安装linux的方式,如果没有安装的话这里应该检测不出来WSL。
提示:如果默认是远程主机的linux,即截图中第二个Hold Remote Host的话,会发现每次切换模块加载该模块的CMake,会把proj下所有模块都upload一下,如果proj包含多个模块的话,会非常非常耗时(在安装WSL之前我就是用这种方式,巨慢)。
小提示:有(default)标识的表示是默认,修改默认的方式是顶到最上面,最上面的即是默认。
2、配置Deployment
创建与远程主机的映射关系,SSH configuration设置远程主机的ssh 连接;Mappings里面设置本地路径与需要与远程主机指定路径的映射关系,配置之后就可以把本地路径的文件同步到远程主机的指定路径,可以配置多个映射关系。
小提示:如果不设置默认远程server,是不会自动同步的。修改默认的方式是选中名称,比如截图中的Hold Remote,然后点√,确定之后Apply即可。
这里设置为Always可以实时同步本地的修改到远程主机。
3、其他
windows系统的CLion同步文件到远程linux系统,由于windows与linux系统的文件系统不一样,导致一个问题:
假如你windows系统本地项目是一个git,远程linux主机需要同步的项目也是一个同样的git,(这样两边都是git,在linux主机上编译,也可以随时使用git查看修改是否符合自己预期,这是以前我自己的习惯,而且在远程linux主机上编译完之后直接使用git提交了,很方便);但是咧,使用windows版本的CLion之后,由于文件系统不一致,同步之后发现整个项目所有文件全部被git识别为变更文件,好家伙那我再linux上面就没法使用git监控哪些文件被真正修改了;以前使用Mac电脑办公Mac OS版本的CLion是没有这个问题的。
因此现在只能是代码远程同步之后,在远程 linux主机上编译,在windows系统上使用git第三方软件监控修改、提交。这样也还行。