centos系统使用gcc编译c程序

1、安装linux系统

服务器安装linux系统

服务器有多种多样的,任意的服务器都可以下载并安装linux系统,这里我是用的阿里云服务器,其他的服务器也大同小异。

首先搜索阿里云,进入云服务器页面:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux系统


centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_服务器_02


点击创建实例进入页面进行购买,购买之后,在云服务器找到自己购买的服务器。

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux系统_03

如下图,这样就有了自己的一台云服务器。接着我们需要下载远程连接的工具,分别是xftp、xShell这两个软件,进入官网进行下载。

xshell xftp

不过现在这两个软件要进行收费,同样的也可以在网上搜索以前的旧版本进行下载,这样就不做演示了 。

下载并安装好了两个软件之后,我们打开xShell这个软件。

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux系统_04


我们这里新建一个会话,这里的主机我们打开阿里云,例如:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux_05


这里就是主机的地址,之后填入密码后就可以连接至页面并成功进行连接。连接成功后进入一下界面:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux_06

2、创建并编译一个简单的c语言程序

要编译c程序,我们必须要下载相应的编译器,一般是下载gcc用来编译c程序。

具体的linux指令如下:

安装完之后,我们开始编写sub1.c文件和main.c文件。

首先我们创建两个文件,对应的指令如下:

三个文件的内容如下:

sub1.h

#include<stdio.h>

int add(int a,int b);

sub1.c

#include"sub1.h"

int add(int a,int b){
        return a+b;
}

main.c

#include<stdio.h>
#include"sub1.h"

int main()
{
   int a =1,b =2;
   int c = add(a,b);
   printf("%d",c);
   return 0;
}

我们使用gcc使用如下指令编译对应的main文件,指令如下:

gcc main.c -o mymain

当时编译却发生了错误,报错的原因如下图:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_linux系统_07


查明原因得知,我们无法根据sub1.h的文件找到sub1.c的文件,因此不能找到对应的add函数,导致了错误

要解决这个问题,只需要将sub1.c文件也进行编译即可:

gcc main.c sub1.c -o mymain

编译后会出现一个mymain.exe文件,如图:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_c语言_08


mymain这个文件就是我们得到的exe文件了。

我们上面只进行了编译的处理,并未进行运行的处理,我们如何运行这个文件呢?

我们只需运行mymain这个文件即可,具体运行指令如下:

./mymain

最终就可得到了结果:

centos 编译安装的目录可以直接移动吗 centos怎么编译c文件_c语言_09


最终得到了结果3,与预期的结果完全一致。

3、收获和补充

在这次的作业当中,我发现我对c语言非常不熟悉,因为用的很少很不了解。所以在实现多个源程序调用的时候出了很多的问题,花费了很多的时间。

在后面我会花时间去熟悉c语言,并能熟练使用。

再就是关于源配置的问题,因为我使用的阿里云的服务器,所以下载的linux系统也是阿里云的源,是国内源,不需要修改。但是大部分的情况下可能都需要修改,这里我进行简单的了解,具体操作如下(这里使用的是centos系统,如果使用其他的linux系统那么方式也不会相同):

1、安装wget工具
yum -y install wget
2、首先备份原镜像配置文件,并进入配置文件所在文件夹
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
cd /etc/yum.repos.d
3、使用wget命令下载repo文件
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
4、替换repo文件
mv Centos-7.repo CentOS-Base.repo
5、执行yum源的更新
yum clean all	//清除旧数据
yum -y update	//更新源
6、查看更新源
yum repolist

具体操作如下,如有不正,望指正。