Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424803
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 623
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:48
个人简介

在生存面前,那纯洁的理想,原来是那么脆弱不堪!

文章分类

全部博文(58)

文章存档

2022年(1)

2021年(1)

2019年(3)

2018年(6)

2017年(6)

2016年(14)

2015年(10)

2014年(16)

2013年(1)

我的朋友

分类: C/C++

2013-12-01 14:55:32

1.建立静态函数库
     1)在函数库文件目录下$ gcc -c bill.c fred.c        //生成bill.o fred.o
     2)在函数库文件目录下$ ar crv libfoo.a bill.o fred.o //生成libfoo.a
2.建立包含文件
    include文件下(void bill (char *);
            void fred (int );)
3.编译源程序
    gcc -c program.c -I/文件include.h所在目录    //生成program.o
4.链接程序
    gcc -o program program.o /.../libfoo.a      //生成可执行文件program
  或者:gcc -o program program.o -L/.../ -lfoo.a
    (若只有一个包含文件,也可以直接输入包含文件的文件路径 例如:bill.o)
5.执行
    ./program             //注意,一定要保证命令行当前在文件所在目录下


   .编译导入包含文件时
    a.包含文件如果是用""号标识,则首先在当前文件下查找头文件;

             在以上前提上;.也可以在包含文件中直接写入路径:如:1).在源文件中写:"myinclude/xxx.h",则编译时:gcc -c main.c
                                    2).-----------:,则编译时: gcc -c main.c -I/main.c文件所在目录

    b.包含文件如果是用<>号标识,则首先在-I引导文件目录下查找头文件,然后再去找系统的头文件。
        大概线路(/源文件所在目录/,/usr/lib/gcc/kernel-linux-gnu/4.3.2/include,/usr/i486-linuc-gnu/include,/usr/include/的顺序);

利用共享库:
          $  gcc  -shared    -o   libXXX.so object1.o pbject2.o     //建立共享库
          $  gcc -o program  source.c ./libXXX.so                           //链接共享库
          $ ./program                                                                //运行


多目标文件的链接
    1. gcc main.c stack.c -o main
        也可以分步执行
        $ gcc -c main.c                  //生成main.o文件
        $ gcc -c stack.c                      //生成stack.o文件
        $ gcc main.o stack.o -o main          //生成可执行文件main

    2.读出分段数据
        $ readelf -a main
    
    3.读出链接脚本
        $ ld --verbose
    

获得帮助        man gcc
                info gcc

阅读(1286) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:linux设备驱动程序之hello,world!

给主人留下些什么吧!~~