Linux   中最重要的软件开发工具是   GCC。GCC   是   GNU   的   C   和   C++   编译器。实际上,GCC   能够编译三种语言:C、C++   和   Object   C(C   语言的一种面向对象扩展)。利用   gcc   命令可同时编译并连接   C   和   C++   源程序。

#DEMO#:   hello.c

如果你有两个或少数几个   C   源文件,也可以方便地利用   GCC   编译、连接并生成可执行文件。例如,假设你有两个源文件   main.c   和   factorial.c   两个源文件,现在要编译生成一个计算阶乘的程序。

-----------------------
清单   factorial.c
-----------------------
#include   <stdio.h>
#include   <stdlib.h>

int   factorial   (int   n)
{
        if   (n   <=   1)
                return   1;

else
                return   factorial   (n   -   1)   *   n;
}
-----------------------

-----------------------
清单     main.c
-----------------------
#include   <stdio.h>
#include   <stdlib.h>

int   factorial   (int   n);

int   main   (int   argc,   char   **argv)
{
        int   n;

if   (argc   <   2)   {
                printf   ( "Usage:   %s   n\n ",   argv   [0]);
                return   -1;
        }
        else   {
                n   =   atoi   (argv[1]);
                printf   ( "Factorial   of   %d   is   %d.\n ",   n,   factorial   (n));
        }

return   0;
}
-----------------------

利用如下的命令可编译生成可执行文件,并执行程序:
$   gcc   -o   factorial   main.c   factorial.c
$   ./factorial   5
Factorial   of   5   is   120.

GCC   可同时用来编译   C   程序和   C++   程序。一般来说,C   编译器通过源文件的后缀名来判断是   C   程序还是   C++   程序。在   Linux   中,C   源文件的后缀名为   .c,而   C++   源文件的后缀名为   .C   或   .cpp。

但是,gcc   命令只能编译   C++   源文件,而不能自动和   C++   程序使用的库连接。因此,通常使用   g++   命令来完成   C++   程序的编译和连接,该程序会自动调用   gcc   实现编译。假设我们有一个如下的   C++   源文件(hello.C):

#include   <iostream.h>

void   main   (void)
{
        cout   < <   "Hello,   world! "   < <   endl;
}

则可以如下调用   g++   命令编译、连接并生成可执行文件:

$   g++   -o   hello   hello.C
$   ./hello
Hello,   world!

1.7.2     gcc/egcs   的主要选项
                                表   1-3     gcc   命令的常用选项
选项                                 解释
-ansi                               只支持   ANSI   标准的   C   语法。这一选项将禁止   GNU   C   的某些特色,
                                        例如   asm   或   typeof   关键词。
-c                                     只编译并生成目标文件。
-DMACRO                           以字符串“1”定义   MACRO   宏。
-DMACRO=DEFN                 以字符串“DEFN”定义   MACRO   宏。
-E                                     只运行   C   预编译器。
-g                                     生成调试信息。GNU   调试器可利用该信息。
-IDIRECTORY                   指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY                   指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY                       连接时搜索指定的函数库LIBRARY。
-m486                               针对   486   进行代码优化。
-o   FILE                           生成指定的输出文件。用在生成可执行文件时。
-O0                                   不进行优化处理。
-O   或   -O1                       优化生成代码。
-O2                                   进一步优化。
-O3                                   比   -O2   更进一步优化,包括   inline   函数。
-shared                           生成共享目标文件。通常用在建立共享库时。
-static                           禁止使用共享连接。
-UMACRO                           取消对   MACRO   宏的定义。
-w                                     不生成任何警告信息。
-Wall                               生成所有警告信息。

#DEMO#

在linux下编译运行c语言程序相关推荐

  1. Linux环境编译运行C语言程序

    linux环境下编译并运行C语言程序 打开安装好的Linux系统(ubuntu18.04) 1.安装编辑器 使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安 ...

  2. 在Ubuntu下编译运行C语言程序

    目录 实验题目 1 gcc编译 1.1 编译运行hello.c程序 1.1.1 使用vim创建hello.c文件 1.1.2 使用gcc将其转化为可执行文件 1.1.3 运行hello可执行文件 1. ...

  3. Linux下编写运行C语言程序

    1.gcc 1.c -o 1.out && ./1.out 命名 2. gcc -lm 1.c && ./a.out 使用math.h中声明的库函数还有一点特殊之处,g ...

  4. 怎么在linux的cmd中运行c项目,如何在cmd窗口编译运行c语言程序?

    / 这个很简单,只需要下载一个C/C++编译器,添加一下环境变量,之后就能在cmd窗口中编译运行C语言程序了,下面我简单介绍一下实现过程,主要内容如下: 1.下载C/C++编译器,这里可以下载MinG ...

  5. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  6. vs的程序在linux下如何运行,在VS下如何运行C语言程序

    在VS下如何运行C语言程序 微软后来对VC6.0进行了升级,并更名为Visual Studio(简称VS),支持更多的编程语言,更加强大的功能,不过 Visual Studio 文件很大,有2~3G左 ...

  7. 在Linux系统中运行C语言程序

    正式学习c语言的第一天   2022/1/10 在之前的学习中已经在Windows系统中用Microsoft VC++上实现了C语言程序的运行,现在将在Linux系统上运行C语言程序. 首先明确C语言 ...

  8. 编好的C语言程序怎么运行,如何在cmd窗口编译运行c语言程序?

    在cmd窗口编译运行C语言程序总共分两步:第一步,在编译器目录下执行编译命令:第二步,在编译器目录下运行可执行程序.需要插件?完全没这回事儿!下面用一个例子来说明. 一.经典的C程序代码 最经典的C程 ...

  9. 在linux中运行c语言程序,linux环境中运行C语言程序

    在linux环境下做运行C语言程序 [root@localhost ~]# cat a.c #include main() {int grade; char chgrade; printf(" ...

最新文章

  1. omnidb数据库web管理工具安装
  2. 与优秀的人在一起进步:我发起的“乐学”分享活动
  3. python代码有时候在命令行下和Python Shell中执行的结果不一样?
  4. 安卓toast文字提示
  5. 简单的JavaScript互斥锁
  6. php判断是不是手机端访问
  7. short_open_tag 惹的问题
  8. w10计算机,打开win10自带计算器的多种方法
  9. java数字时钟界面_Java数字时钟实现代码
  10. 一句话详解常见的心理学效应
  11. 商城项目 ------ 订单的生成功能(vue实现)
  12. Flash 控件的安装
  13. 如何快速删除百度相关搜索中的关键词?
  14. 小说阅读器,记录上次阅读位子。
  15. Python_首字母大写
  16. 枚举算法实践2-切割木棍 c++
  17. 如何用无人机倾斜摄影采集影像,完成实景三维重建?
  18. Qt实现计算器(包含算术运算和逻辑运算),纯干货,一步步超详细过程
  19. LCG(linear congruential generator)伪随机数生成器
  20. Android 通过基站进行定位

热门文章

  1. [风云人物]三年挣850万,你也可以复制!
  2. 使用VideoCapture进行读取时0x00007FF9A1F86A6F (opencv_world440d.dll)处(位于 opencvtest.exe 中)引发的异常
  3. 由于找不到opencv_world310d.dll,无法继续执行代码。重新安装程序可能会解决此问题。
  4. 一文多图搞懂KITTI数据集下载及解析
  5. JAVA测试类注解以及Mock测试
  6. 几种自动化测试工具的比较
  7. Android8.0,允许安装未知来源
  8. python-opencv实现图像超像素分割(SLIC、SEEDS、LSC)
  9. 用于电车气候测量的无线数据记录仪
  10. linux下nginx配置SSL证书