CLion配置问题

CLion配置远程服务器,本地同步云端

笔者也是边学边配,随时更新,欢迎大家讨论交流

首先CLion是支持直接SSH打开云端服务器的,类似于vscode,但mentor说那样在没网的时候没法查看代码,而且即使这样CLion也会拉下来一份代码,只是不知道存在哪,不可控,所以采用同步的方式

Tips:

  1. 用远端的Toolchains记得把他移到最上面设为
    default,需要自动上传云端的记得在CLion下面配置好default server
  2. CLion是智能编译,即使你改了一小块地方也可以放心rebuild,他应该会检查哪些没变,大大减小重新编译的时间
  • 问题1
    本地和远程同步,远程上的一些库或者提前编译好的文件,本地怎么处理?

    clion 一般将远程的相关头文件缓存至本地,方式为先将缓存打成tar包然后下载到本地解析,所以其实可以在本地找到.remote的一些包,在系统盘,你在本地直接Ctrl+Click其实就是引用到这里的包。目前我还不知道怎么更改这个默认的下载路径

  • 问题2
    有一些我本地和远程的同名文件,明明勾选了自动upload,但是还是会出现版本不一致,文件具体内容有差别的情况

    原因不明,但是应该可以通过
    Tools -> Resync with Remote Host
    强制的同步。包括有一些云端的包,我不小心手贱在本地删除了,也可以这样把远端的再拉下来
    但是这样的同步好像应该以本地为标准,我这里会拉远端的包应该是我git版本控制或其他设定的原因?

  • 问题3
    我需要连接远程主机上的容器,明明在Toolchains中配置了Enviroment File,例如root/setup.sh,但是从CLion的终端中直接连这个容器,并没有默认Source setup.sh这个操作,必须我手动执行一次才可以
    或者我从服务器中docker exec...也可以配置好,很奇怪,目前不知道原因。。。

  • 问题4
    为什么我开启Remote Host想看远端的目录,有的时候打不开呢,必须close project再打开才可以。。

  • 问题5
    一个git的问题,我配置好了SSH,但是git pull默认是按照https方式拉取,由于我这里https配置的有问题(可能是第一次输入账户密码有问题,然后保存在本地了,之后没法再用),我就需要用SSH的方式来pull

    git remote set-url origin git@<host>:<username>/<repository>.git

  • 问题6
    reload cmake是在更改cmakelists,改变项目构建,添加了源文件,修改了关系后需要做的,与Resync with Remote Host不是一个层面的意思,当然reload cmake也是会自动上传的(如果配置了的话)

  • 问题7
    磁盘空间问题:由于申请的是云主机,系统盘很小,一定要考虑清楚你要把容器或者数据放在哪里,一开始我没看直接放在了/home下,结果df -h一看,是系统盘,导致容器里编译的时候报错显示空间不够直接kill -9
    一定考虑好安装位置!!!

  • 问题8
    前提:我的是windows系统
    为什么我在Deploment中手动将../make-build-debug-remote-host_container设定为Exclude Path,
    但是CLion还是会自动再添加一条?
    而且我把它exclude了,从结果上看还是会和远端进行同步的操作?

    好像这个排不排除掉无所谓,可能老版本的build方式需要

  • 问题9
    为啥在mdk下的Makefile中没找到cmake_no_build这个指令?
    这个指令的作用是啥呢
    make build这个命令的作用是什么,在build->install下生成的可执行文件是什么

    cmake_no_buildmdk/package下,包括default_build也在,cmake_no_build等价于cmake,作用是检查系统环境,确定编译器,库依赖等,其实就是生成Makefile文件

    make build是根据整个Makefile文件来build整个工程,包括编译,链接,install等

    build/install目录是用来存放目标文件,包括可执行bin文件,库文件

  • 问题10
    从昨天的编译结果来看,我应该在打开TEST的开关之后编译过了的,也就是说在build下生成了.o文件,还有install中的
    alt text
    但是最后解决方法是把云端的cmake-build-debug...删除,make prepare + make cmake_no_build,再把本地的删除后重新reload cmake project,很奇怪

    怀疑是CLion本身cache的问题

    从后面编译模块时来看,会去cmake_build_debug_remoteXXX这里找目标文件,而我在make build之后仍然显示未加入Cmake project,大概率是由于这个目录不对的原因

  • 目前的问题 (已解决)
    TEST等文件可以编译,但是编译的时候会显示
    g++: fatal error: Killed signal terminated program cc1plus
    大概率是容器内存不足的情况,应该可以通过重建容器时添加
    --memory XXG解决,但这样就得重建,不知道有啥更好的解决方法。。

    解决:其实不是我的内存不够,因为我看容器可用内存有16个G左右呢。
    alt textgcc编译的时候非常吃cpu和内存,我一开始设定了-j 30
    -j表示make可以同时运行的作业数。 太大了,前辈建议我最多设定-j 8,修改后即build成功

posted @ 2024-03-22 11:49  孙bob  阅读(22)  评论(0编辑  收藏  举报