博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在linux下编译运行c语言程序
阅读量:4223 次
发布时间:2019-05-26

本文共 1906 字,大约阅读时间需要 6 分钟。

   中最重要的软件开发工具是   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#

转自:http://blog.csdn.net/shijinupc/article/details/6789554

你可能感兴趣的文章
大范围内素数的求法
查看>>
各大公司经典算法面试题
查看>>
各种进制转换的原理
查看>>
谈数学学习
查看>>
重要的算法
查看>>
面试常见的算法
查看>>
GPU的硬件结构
查看>>
AES加密算法在GPU上的实现
查看>>
Visual C++下的一些程序调试和开发技巧
查看>>
图像处理和计算机视觉中的经典论文
查看>>
时间与空间复杂度
查看>>
递归算法与非递归算法的转化
查看>>
C/C++随机数的产生
查看>>
判断点是否在三角形内
查看>>
面试心得
查看>>
Linux系统之文件目录结构
查看>>
Linux 系统之find命令参数详解
查看>>
Linux系统之vmstat命令
查看>>
Linux系统之内核代码分析-- slab.c
查看>>
Linux系统之mkdir命令
查看>>