飞道的博客

hualinux c 1.4:win CLion远程centos8开发C/C++

743人阅读  评论(0)

目录

前言

一、环境说明

1.1 说明

1.2 centos8相关设置

1.2.1centos8安装兼容包(已安装)

1.2.2关闭selinux(重要)

1.2.3关闭防火墙

1.2.4时间同步(最好要)

1.2.5 安装第三方源epel源及remi源

1.2.6在history命令前添加时间显示

1.2.7 修改文件连接数

1.3 centos8安装gcc、make、cmak、gdb等依赖

1.3.1 dnf安装gcc make gdb

1.3.2 源安装cmake

1.4 Clion安装及配置

1.4.1 Clion安装

1.4.2 Clion配置远程

二、建立一个简单的hello测试

2.1 建立项目

2.2 修改指定目录(可选)

2.3 查看生成的执行文件

三、常见问题

3.1 控制台中文乱码解决

3.1.1 修改文件编码

3.1.2 修改VM参数

3.2 再次使用CLion发现远程连接不上解决

3.3 同时编写多个main函数运行文件


前言

上一章《hualinux c 1.3:c语言的ide神器CLion安装》讲了windows下安装Clion编写win上的C,现在这篇,牛B点,远程linux进行C/C++开发!废话少说,现在开始

一、环境说明

1.1 说明

本地系统:win7 64位旗舰版,主要在上面安装CLion IDE开发工具,目前新版本为2020.1

虚拟机系统:centos8.1 64位,最小化安装

名称

版本

安装方式

备注

Clion

2020.1

exe

官网下载直接安装即可

xshell

6.0

exe

可以官网下载家庭免费版,不建议使用破解一般有木马

gcc

8.3.1

dnf

在这里直接dnf install安装即可

make

4.2.1

dnf

这里也是直接安装

cmake

3.11

源安装

不能低于3.16 ,dnf安装的为3.11

gdb

8.2.6

dnf

直接dnf就够了

1.2 centos8相关设置

1.2.1centos8安装兼容包(已安装)

服务器端和客户端同时操作

#兼容centOS6之前的命令

yum install -y net-tools

不关闭也可以要让其端口通过防火墙

1.2.2关闭selinux(重要)

如果不关闭selinux的话,有些自定义路径不符它的规则会产生问题,一般推荐关闭


  
  1. #临时关闭:
  2. setenforce off
  3. #永久性关闭:
  4. sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  5. sed -n '/SELINUX=/p' /etc/selinux/config
  6. shutdown -r now

1.2.3关闭防火墙


  
  1. #停止firewall
  2. #禁止firewall开机启动
  3. systemctl stop firewalld.service
  4. systemctl disable firewalld.service

1.2.4时间同步(最好要)

有不少软件对时间有要求的,不能相差太多,比如主从、zabbix等,所以建议配置一下

centos8已经取消了ntp,默认使用的是chronyd

有些软件时间性要求比较强的,如同步类,数据库主从,做实验也最好同步一下时间


  
  1. #yum和dnf都可以安装,推荐用dnf
  2. #yum install chrony
  3. dnf install chrony

在第8次迭代之前,CentOS使用yum包管理器。从CentOS 8开始,包管理已经从yum迁移到Dandified yum (DNF)DNF最早是在Fedora 18中引入的,并成为Fedora 22中的默认软件包管理器,它与yum使用上非常相似。

#配置时间服务器,我这里使用的是中国区的


  
  1. #备份配置
  2. cp /etc/chrony.conf  /etc/chrony.conf.orig
  3. #注解掉pool
  4. sed -i '/^pool/s/^/#/' /etc/chrony.conf
  5. grep '#pool' /etc/chrony.conf
  6. sed -i '/#pool/a\server cn.pool.ntp.org iburst' /etc/chrony.conf
  7. sed -i '/#pool/a\server ntp.ntsc.ac.cn iburst' /etc/chrony.conf
  8. sed -i '/#pool/a\server ntp1.aliyun.com iburst' /etc/chrony.conf
  9. grep -A 3 '#pool' /etc/chrony.conf

效果:

#重启服务

systemctl restart chronyd.service

1.2.5 安装第三方源epel源及remi源


  
  1. #安装epel源可以下载比较新版本的软件及部分默认没用的yum软件
  2. yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
  3. wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm
  4. rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
  5. rpm -ih remi-release-8.rpm
  6. rm -f remi-release-8.rpm

 

1.2.6在history命令前添加时间显示


  
  1. echo '#by hua '>> /etc/bashrc
  2. echo 'export HISTFILESIZE=100000000' >> /etc/bashrc
  3. echo 'export HISTSIZE=1000000' >> /etc/bashrc
  4. echo 'export PROMPT_COMMAND="history -a"' >>/etc/bashrc
  5. echo 'export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "' >> /etc/bashrc
  6. source /etc/bashrc

1.2.7 修改文件连接数

#刚安装完系统的时候默认文件连接数为1024个,可以使用命令“ulimit -n”查看

#这样太小了不够用,所在生产环境一般都会修改此项。阿里云默认的tcp连接数是65535,#过大会报警,这样我们参照大哥的做法,因为一般他们都测试大量测试的。


  
  1. cat>>/etc/security/limits.conf<<EOF
  2. #by hua
  3. * soft nofile 65535
  4. * hard nofile 65535
  5. EOF
  6. tail -5 /etc/security/limits.conf
  7. #要生效需要断开ssh再连接即可
  8. ulimit -n

 

1.3 centos8安装gcc、make、cmak、gdb等依赖

1.3.1 dnf安装gcc make gdb

         用Xshell登陆centos8.1,这里使用的是root权限,我这里的内网IP地址为192.168.3.81

dnf install -y gcc gcc-c++ make gdb

1.3.2 源安装cmake

进入官网地下载地址:https://cmake.org/download/ ,目前最新版本为3.17.2,可以选择二进制安装也可以选择源码安装,我这里选择源码安装吧。

如果慢也可以直接去官网github下载,地址为:https://github.com/Kitware/CMake/releases,一样的

因为下载地址是变化的,所以我就先下载么本地的win上,再上传就行了

#1 安装相关依赖


  
  1. dnf install -y libuv automake lrzsz openssl openssl-devel
  2. dnf --enablerepo=PowerTools install -y texinfo

#2 安装cmake


  
  1. #卸载低版本的cmake
  2. dnf remove cmake -y
  3. #3.源安装cmake
  4. mkdir -pv /disk1/tools
  5. cd /disk1/tools
  6. #直接把刚才的二进制tar.gz包拖进xshell的窗口中放手就可以了
  7. tar -xf cmake-3.17.2.tar.gz
  8. cd cmake-3.17.2/
  9. #根据README.rst说明得知安装
  10. ./bootstrap
  11. gmake
  12. mak install
  13. cd ..
  14. cmake --version
  15. #为了让Clion能访问到添加一个软链接
  16. ln -s /usr/ local/bin/cmake /usr/bin/cmake

 

1.4 Clion安装及配置

1.4.1 Clion安装

Clion 下载安装完之后并不能直接运行C++项目,需要配置一个环境,有cygwin和MinGW64可选择,我这里选择MinGW64,如果是远程linux的话可以不用安装。

下载地址:https://www.jetbrains.com/clion/,这里是exe安装,具体安装就不说了,没有什么好讲的。安装完双击桌面的Clion图标运行即可。如果有下面2个图则相对进行操作

这个软件注册破jie网上一大把,我这里就不说了

1.4.2 Clion配置远程

安装完成之后打开CLion,在主界面选择 Configure -> Settings

注:如果没有找到主界面,可以在登陆之后选择“File-->settings...

正确的话就OK了,如果不行关闭再配置多几次

注:如上面手工要指定Make路径,千万别填CMake的路径,否则运行会报错,无法生成运行配置

从上面图中看到还配置 了一个winMinGW,是默认的,所以需要上移一下,变成默认

二、建立一个简单的hello测试

2.1 建立项目

点Clion中的“New Project”,照着提示填写就行了

注:这里我用的是C最新的标准C11,当然也可以使用其它,越老兼容性越好,新标准会做一些修改

 

显示一下工具栏:ViewàAppearanceàToolbar

进到界面看到IDE最下面有数据产生,如一切正常的话会自动生成运行配置(运行配置是不用手工配置的)、生成简单的hello world C语言文件、生成调试目录及文件,如下图:

#点工具栏中的“运行”按钮 ,看一下运行效果,在IDE最下方有运行结果

上面中是在linux上运行正常,默认路径为:/tmp/tmp.8usYEwHy43/cmake-build-debug目录是IDE随机生成的,因为我没有指定C语言的保存路径,如果要修改路径的话可以看2.2章节

2.2 修改指定目录(可选)

如果我们想修改默认的“/tmp/tmp.8usYEwHy43/cmake-build-debug”目录怎么办?

#在这里先用xshell登录centos8,建立一个放c的程序目录

mkdir -pv /disk1/hualinux/myc

注:如果非root权限,需要修改一下所拥有用户权限,保证能写入和执行权限

 

可以用打开setting-->Build,Execution,Deployment-->Deployment

如弹出下面的框架则表示OK

重新同步一下使其生效,在项目根目录(空白处也行)右击,选择“Reload Cmake Project”

再次运行程序看一下效果:

注:如使用Deployment,则不会上传运行产生的数据目录,在IDE中为橙色,是Exculuded(排除)的意思,这里是cmake-build-debug目录,如果不上传它则不能远程调试

Deployment操作如下:

项目根目录右击,选择“DeploymentàUpload to…

之前的版本会少了cmake-build-debug目录,发现2020版本还是存在

2.3 查看生成的执行文件

如果要查看生成的文件怎搞呢?可以在cmake-build-debug下面找到以项目名命名的文件

我这里是“myc”,在linux查看“/disk1/mycTest/cmake-build-debug”目录效果为

可以复制出来试下,如复制到/disk目录下执行,操作如下:


  
  1. [root@vm81 ~] # cp /disk1/hualinux/myc/cmake-build-debug/linuxc  /disk1/
  2. [root@vm81 ~] # /disk1/linuxc
  3. Hello, World!

 

三、常见问题

3.1 控制台中文乱码解决

为了显示中文,我把World改为中文的“世界”

printf("Hello, 世界!\n");

3.1.1 修改文件编码

当代码中有中文的时候,因为我是远程centos8.1调试的,默认使用的是UTF-8,所以要

在settings中设置UTF-8,操作如下:

当代码中有中文的时候,因为我是远程centos8.1调试的,默认使用的是UTF-8,所以要

在settings中设置UTF-8,操作如下:

  1. 打开settings,点工具栏中 或“FileàSettings…”
  2. 设置文件编码为UTF-8,如下图:

这样做还不行,故意在main中写错一个,如printf()改为printfa,运行就会报错,如下图:

3.1.2 修改VM参数

所以还得继续修改,这次修改VM配置参数

Help-->Edit Custom VM Options...

在尾部添加:如果有破jie的,就不能写在尾部,写在破解上面就行

-Dfile.encoding=UTF-8

关闭CLion,再打开,发现连接不上了,可以看下一章《3.2 再次使用CLion发现远程连接不上解决》解决方法,解决了连接不上的问题之后,再次运行发现显示正常了,如下图:

3.2 再次使用CLion发现远程连接不上解决

 关闭CLion再打开CLion发现报错,远程连接不上的情况,如下图:

出现上现错误主要是配置中没有保存密码,造成连接不上。

点上图中蓝色的“Configure”会跳到配置窗口,发现报错,如下图所示:

ps:测试发现密码是无法保存的,每次都会丢失,所以每次都需要操作一下

能连接上的后,再点“ok”使生效,会回到原来界面,又变正常了

最好在其同级的“Deployment”也测试一下,确保能使用SFTP正常连接

最后在

这样就正常回来了,看最正下方的控制台如下图所示:

3.3 同时编写多个main函数运行文件

         默认情况下,CLion只能有一个main主函数,但在练习中,我们往往同时需要多个单文件的main,这样就可以把练习的保留下来,下次使用的时候再运行即可。

         C不像java只有有main旁边就有一个运行图标供你运行,在CLion中可修改一下CMakeLists.txt

配置文件即可,使用方法也很简单,在CMakeLists.txt添加一个add_executable()即可,语法如下:

add_executable(名字 源码)

例子:

建立一个t1.c的C语言文件,使用main()函数打印,代码如下:

代码如下:

直接运行试下:

会报如下错误:

打开CMakeLists.txt ,修改如下:

把整个项目Reload一下

工具栏的运行项中多了一个myt1,如下图

选中myt1 点旁边绿色三角运行一下,发现可以运行了,如下图所示:

 

 

 

 

 

 

 

 


转载:https://blog.csdn.net/hualinux/article/details/106387606
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场