Linux 安装 gcc 编译运行 C程序

简介: Linux 安装 gcc 编译运行 C程序

安装gcc$ yum -y install gcc


# 安装c语言编译器gcc
[root@bogon ~]# yum -y install gcc
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bupt.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.neusoft.edu.cn
base                                                                             | 3.6 kB  00:00:00     
extras                                                                           | 2.9 kB  00:00:00     
updates                                                                          | 2.9 kB  00:00:00     
updates/7/x86_64/primary_db                                                      |  13 MB  00:00:19     
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-44.el7 将被 安装
--> 正在处理依赖关系 cpp = 4.8.5-44.el7,它被软件包 gcc-4.8.5-44.el7.x86_64 需要
--> 正在处理依赖关系 glibc-devel >= 2.2.90-12,它被软件包 gcc-4.8.5-44.el7.x86_64 需要
--> 正在处理依赖关系 libmpfr.so.4()(64bit),它被软件包 gcc-4.8.5-44.el7.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-44.el7.x86_64 需要
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-44.el7 将被 安装
---> 软件包 glibc-devel.x86_64.0.2.17-325.el7_9 将被 安装
--> 正在处理依赖关系 glibc-headers = 2.17-325.el7_9,它被软件包 glibc-devel-2.17-325.el7_9.x86_64 需要
--> 正在处理依赖关系 glibc = 2.17-325.el7_9,它被软件包 glibc-devel-2.17-325.el7_9.x86_64 需要
--> 正在处理依赖关系 glibc-headers,它被软件包 glibc-devel-2.17-325.el7_9.x86_64 需要
---> 软件包 libmpc.x86_64.0.1.0.1-3.el7 将被 安装
---> 软件包 mpfr.x86_64.0.3.1.1-4.el7 将被 安装
--> 正在检查事务
---> 软件包 glibc.x86_64.0.2.17-317.el7 将被 升级
--> 正在处理依赖关系 glibc = 2.17-317.el7,它被软件包 glibc-common-2.17-317.el7.x86_64 需要
---> 软件包 glibc.x86_64.0.2.17-325.el7_9 将被 更新
---> 软件包 glibc-headers.x86_64.0.2.17-325.el7_9 将被 安装
--> 正在处理依赖关系 kernel-headers >= 2.2.1,它被软件包 glibc-headers-2.17-325.el7_9.x86_64 需要
--> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-325.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 glibc-common.x86_64.0.2.17-317.el7 将被 升级
---> 软件包 glibc-common.x86_64.0.2.17-325.el7_9 将被 更新
---> 软件包 kernel-headers.x86_64.0.3.10.0-1160.49.1.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================================
 Package                   架构              版本                              源                  大小
========================================================================================================
正在安装:
 gcc                       x86_64            4.8.5-44.el7                      base                16 M
为依赖而安装:
 cpp                       x86_64            4.8.5-44.el7                      base               5.9 M
 glibc-devel               x86_64            2.17-325.el7_9                    updates            1.1 M
 glibc-headers             x86_64            2.17-325.el7_9                    updates            691 k
 kernel-headers            x86_64            3.10.0-1160.49.1.el7              updates            9.0 M
 libmpc                    x86_64            1.0.1-3.el7                       base                51 k
 mpfr                      x86_64            3.1.1-4.el7                       base               203 k
为依赖而更新:
 glibc                     x86_64            2.17-325.el7_9                    updates            3.6 M
 glibc-common              x86_64            2.17-325.el7_9                    updates             12 M

事务概要
========================================================================================================
安装  1 软件包 (+6 依赖软件包)
升级           ( 2 依赖软件包)

总下载量:48 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/9): glibc-devel-2.17-325.el7_9.x86_64.rpm                                     | 1.1 MB  00:00:01     
(2/9): glibc-headers-2.17-325.el7_9.x86_64.rpm                                   | 691 kB  00:00:00     
(3/9): kernel-headers-3.10.0-1160.49.1.el7.x86_64.rpm                            | 9.0 MB  00:00:04     
(4/9): libmpc-1.0.1-3.el7.x86_64.rpm                                             |  51 kB  00:00:00     
(5/9): mpfr-3.1.1-4.el7.x86_64.rpm                                               | 203 kB  00:00:00     
(6/9): glibc-2.17-325.el7_9.x86_64.rpm                                           | 3.6 MB  00:00:18     
(7/9): cpp-4.8.5-44.el7.x86_64.rpm                                               | 5.9 MB  00:00:23     
(8/9): glibc-common-2.17-325.el7_9.x86_64.rpm                                    |  12 MB  00:00:26     
(9/9): gcc-4.8.5-44.el7.x86_64.rpm                                               |  16 MB  00:00:28     
--------------------------------------------------------------------------------------------------------
总计                                                                    1.7 MB/s |  48 MB  00:00:28     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : glibc-2.17-325.el7_9.x86_64                                                        1/11 
  正在更新    : glibc-common-2.17-325.el7_9.x86_64                                                 2/11 
  正在安装    : mpfr-3.1.1-4.el7.x86_64                                                            3/11 
  正在安装    : libmpc-1.0.1-3.el7.x86_64                                                          4/11 
  正在安装    : cpp-4.8.5-44.el7.x86_64                                                            5/11 
  正在安装    : kernel-headers-3.10.0-1160.49.1.el7.x86_64                                         6/11 
  正在安装    : glibc-headers-2.17-325.el7_9.x86_64                                                7/11 
  正在安装    : glibc-devel-2.17-325.el7_9.x86_64                                                  8/11 
  正在安装    : gcc-4.8.5-44.el7.x86_64                                                            9/11 
  清理        : glibc-2.17-317.el7.x86_64                                                         10/11 
  清理        : glibc-common-2.17-317.el7.x86_64                                                  11/11 
  验证中      : mpfr-3.1.1-4.el7.x86_64                                                            1/11 
  验证中      : glibc-devel-2.17-325.el7_9.x86_64                                                  2/11 
  验证中      : gcc-4.8.5-44.el7.x86_64                                                            3/11 
  验证中      : glibc-headers-2.17-325.el7_9.x86_64                                                4/11 
  验证中      : kernel-headers-3.10.0-1160.49.1.el7.x86_64                                         5/11 
  验证中      : libmpc-1.0.1-3.el7.x86_64                                                          6/11 
  验证中      : glibc-common-2.17-325.el7_9.x86_64                                                 7/11 
  验证中      : glibc-2.17-325.el7_9.x86_64                                                        8/11 
  验证中      : cpp-4.8.5-44.el7.x86_64                                                            9/11 
  验证中      : glibc-2.17-317.el7.x86_64                                                         10/11 
  验证中      : glibc-common-2.17-317.el7.x86_64                                                  11/11 

已安装:
  gcc.x86_64 0:4.8.5-44.el7                                                                             

作为依赖被安装:
  cpp.x86_64 0:4.8.5-44.el7                       glibc-devel.x86_64 0:2.17-325.el7_9                   
  glibc-headers.x86_64 0:2.17-325.el7_9           kernel-headers.x86_64 0:3.10.0-1160.49.1.el7          
  libmpc.x86_64 0:1.0.1-3.el7                     mpfr.x86_64 0:3.1.1-4.el7                             

作为依赖被升级:
  glibc.x86_64 0:2.17-325.el7_9                   glibc-common.x86_64 0:2.17-325.el7_9                  

完毕!

验证安装$ gcc -v


[root@VM-0-9-centos ~]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 

创建编辑源文件


执行命令 $ vi hello.c

进入 vim编辑器 , 进入默认为 [命令模式],无法输入,键入英语字符[i]或[a]或[o]键,或者insert键,进入编辑模式(下有提示为 INSERT). 开始编写文件如下:

  • 编辑完成后,按下[Esc]键,退出编辑模式. 进入命令模式.输入:号,进入底线命令模式 , 再输入wq ,保存退出
  • 编译文件,会产生一个 a.out的输出文件.
[root@VM-0-9-centos C_language]# vi hello.c
[root@VM-0-9-centos C_language]# gcc hello.c 
[root@VM-0-9-centos C_language]# ls
a.out  hello.c
  • 运行a.out ./ ,成功打印出 Hello World

当然也可以一起使用,编译加运行 $ gcc hello.c && ./a.out


一些其他gcc命令


  • gcc hello.c -o hello.out指定输出文件名

  • 仅执行编译操作,不进行连接操作: $ gcc -c hello.c 生成.o 文件

  • 执行编译预处理: $ gcc -E hello.c

  • $ gcc -S .\HelloWorld.c 编译为汇编代码. 生成.s文件

    查看文件内容如下.
[root@VM-0-9-centos C_language]# cat hello.s
        .file   "hello.c"
        .section        .rodata
.LC0:
        .string "Hello World"
        .text
        .globl  main
        .type   main, @function
main:
.LFB0:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $.LC0, %edi
        movl    $0, %eax
        call    printf
        movl    $0, %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   main, .-main
        .ident  "GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44)"
        .section        .note.GNU-stack,"",@progbits


Linux下编译及运行c


安装

[root@izuf6567rc0o5t7oi23kmqz ~]# yum -y install gcc

查看版本

[root@izuf6567rc0o5t7oi23kmqz ~]# gcc -v
# gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
[root@izuf6567rc0o5t7oi23kmqz ~]# cd /
[root@izuf6567rc0o5t7oi23kmqz /]# ls
bin   data  etc   lib    lost+found  mnt  proc  run   srv   sys  usr
boot  dev   home  lib64  media       opt  root  sbin  swap  tmp  var
[root@izuf6567rc0o5t7oi23kmqz /]# cd data
[root@izuf6567rc0o5t7oi23kmqz data]# ll
总用量 0
[root@izuf6567rc0o5t7oi23kmqz data]# vi HelloWorld.c
[root@izuf6567rc0o5t7oi23kmqz data]# ll
总用量 4
-rw-r--r-- 1 root root 75 12月 29 16:00 HelloWorld.c
[root@izuf6567rc0o5t7oi23kmqz data]# gcc HelloWorld.c 
[root@izuf6567rc0o5t7oi23kmqz data]# ll
总用量 16
-rwxr-xr-x 1 root root 8560 12月 29 16:01 a.out
-rw-r--r-- 1 root root   75 12月 29 16:00 HelloWorld.c
[root@izuf6567rc0o5t7oi23kmqz data]# ./a.out 
Hello World[root@izuf6567rc0o5t7oi23kmqz data]# rm -rf a.out 

同时运行

[root@VM-0-9-centos data]# gcc hello.c && ./a.out
Hello world[root@VM-0-9-centos data]# ls
a.out  C_language  hello.c
相关文章
|
1月前
|
人工智能 安全 Linux
Alpine Linux设定指定的软件包安装源
以上就是如何为Alpine Linux设置特定的软件包的安装源的全部流程。这个过程非常简洁、明了,希望你在使用过程中能够找到乐趣。这个过程不仅可以提供你需要的软件,还可以根据你的网络条件和地域性需求进行调整,使你的Alpine Linux系统达到最佳性能。
214 24
|
1月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
243 17
|
1月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
140 11
|
1月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
454 16
|
20天前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
|
12月前
|
NoSQL Java Linux
linux 安装 neo4j简介
Neo4j是高性能NoSQL图形数据库,利用图结构存储数据。推荐使用JDK 11配合Neo4j 3.x版本。下载3.5.9版,通过`curl`命令在Linux上获取tar.gz文件,然后解压。配置`neo4j.conf`,调整内存设置,开启远程访问。执行`./bin/neo4j start`启动,通过`http://服务器IP:7474`访问,默认凭据是username: neo4j, password: neo4j,登录后应更改密码。
888 1
|
存储 缓存 Ubuntu
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介(二)
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介(二)
288 0
|
Ubuntu 安全 Unix
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介(一)
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介(一)
353 0