gcc的简单使用

1. 编译选项-E、-S、-c

  选项告诉gcc编译过程停在哪一步(源程序到目标程序大致经历预处理、编译、汇编、链接等阶段)。

  -c 编译或汇编源程序文件, 不链接

  -S 停止编译后的阶段, 生成汇编代码, 不汇编

  -E 停止预处理后的阶段,

 

 -I(大写i)添加头文件的搜索路径

 -L添加库文件搜索路经 

2. 静态库

  gcc -c add.c -o add.o

  ar rcs libadd.a add.o

  gcc -o main main.c  /lib/libadd.a

  gcc -o main main.c -L/lib -ladd

   add.c如下

#include "add.h"

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

 add.h如下

#ifndef __ADD_H__
#define __ADD_H__

int add(int a, int b);

#endif

 main.c如下

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

int main(int argc, char *argv[])
{
    int sum = 0;
    int i = 0;

    if(argc >= 3) {
        //for(i = 1; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]);
        sum = add(atoi(argv[1]), atoi(argv[2]));    
    } else {
        printf("too little argment!\n");
    }

    printf("sum = %d\n", sum);

    return  0;
}

  执行结果如下

  

3. 动态库

  gcc -fPIC -g -c add.c -o add.o

  gcc -shared -o libadd.so add.o

  gcc -o main main.c -L. -ladd

  同样的代码执行如下:

  

posted @ 2016-04-10 02:10  zhanglong71  阅读(240)  评论(0编辑  收藏  举报