linux静态库——实验1

 

实验目标:

是在libc.a静态库中添加自己写的函数,并写测试程序进行调用添加的函数。


实验步骤:

1. 制作目标文件

    (1)编写目标文件的源文件(obj_add.c),代码如下:

  1 #include <stdio.h>
  2
  3 void test(void)
  4 {
  5         printf("test obj, add by salmon\n");
  6         return;
  7 }

    (2)编译目标文件的源代码:

$gcc -c obj_add.c -o obj_add.o

生成的obj_add.o即制作好的目标文件。

2. 新目标文件添加到libc.a中,生成新的libc.a,并替换原libc.a

    (1)从/usr/lib中把libc.a复制出来(同时做个备份),最好放到新建的目录下,解压libc.a:

$ar -x libc.a

可以看到目录下解压出很多.o文件

    (2)把自己制作的目标文件放到这个目录下

 
    (3)在这个目录下生成新的libc.a

$ar -rcs libc.a  *.o   

    (4)新生成的libc.a替换原libc.a

$sudo cp libc.a  /usr/lib/libc.a   -i   

/usr/lib/libc.a被覆盖掉

3. 在/usr/include目录下新建obj_test.h头文件,声明自己写的目标文件中的函数,内容如下:

  1 #ifndef _OBJ_TEST_H
  2 #define _OBJ_TEST_H
  3
  4 extern void test(void);
  5
  6 #endif  


4. 写测试程序(obj_test.c),并进行静态编译:

  1 #include <obj_test.h>
  2
  3 int main(void)
  4 {      
  5         test();
  6         return 0;
  7 }


编译:$gcc -static obj_test.c -o obj_test.elf
(一定要进行静态编译哦)


5.执行编译的可执行程序,看运行结果。

$./obj_test.elf
test obj, add by salmon


与预想的一致,实验成功。


最后实验结束别忘了把原版的/usr/lib/libc.a替换回来。并删除/usr/include/obj_test.h


本人新手,初学linux c编程,有不足之处请大家指教!

                                                    salmon

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值