[c/c++] linux c生成静态库&共享库 - bluefrog - 博客园

[c/c++] linux c生成静态库&共享库 - bluefrog - 博客园

[c/c++] linux c生成静态库&共享库

静态库

libdemo.h

1 // libdemo.h
2 #ifndef _LIBDEMO_H
3 #define _LIBDEMO_H
4
5 void demo_call(char *msg);
6
7 #endif

libdemo.c

1 // libdemo.c
2 #include "libdemo.h"
3 #include <stdio.h>
4
5 void demo_call(char *msg)
6 {
7     printf("%s\n",msg);
8 }

编译库文件

# 编辑成目标文件
gcc -c libdemo.c -o libdemo.o
# 创建存档文件
ar rcs libdemo.a libdemo.o

测试文件testdemo.c

1 #include "libdemo.h"
2
3 int main()
4 {
5     demo_call("hello");
6     return 0;
7 }

gcc testdemo.c -o testdemo -static -L. -ldemo
./testdemo

共享库

gcc -fPIC -g -c libdemo.c -o libdemo.o
gcc -g -shared -WL,-soname,libdemo.so -o libdemo.so.1.0.0 libdemo.o -lc
ln -s libdemo.so.1.0.0 libdemo.so
gcc testdemo.c -o -L. -ldemo
# 为了能让./testdemo执行需要将.so 加入到库里
export LD_LIBRARY_PATH=$(pwd)
./testdemo

 

think in coding

posted on 2012-07-08 00:22 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/07/08/2581118.html

[c/c++] linux c生成静态库共享库 - bluefrog - 博客园相关推荐

  1. 分布式Session共享(二):tomcat+memcached实现session共享 - 萝卜兔子 - 博客园

    分布式Session共享(二):tomcat+memcached实现session共享 - 萝卜兔子 - 博客园 http://www.cnblogs.com/notDog/p/5341219.htm ...

  2. linux裸机安装nginx,linux环境下安装nginx步骤 - 进击的乌龟 - 博客园

    开始前,请确认gcc g++开发类库是否装好,默认已经安装. ububtu平台编译环境可以使用以下指令 apt- get install build- essential apt - get inst ...

  3. mybatis自动建表oracle,利用mybatis-generator自动生成代码 - 菩提树下的杨过 - 博客园...

    mybatis-generator 有三种用法:命令行.eclipse插件.maven插件.个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用. 下面是从 ...

  4. vpc配置静态ip_vPC配置 - 剪刀石头布Cheers - 博客园

    1.vPC概述 如下图所示,在传统网络中,出于冗余考虑,汇聚层往往由2台设备构成,一台接入层交换机使用2根上联链路,分别连接汇聚层2台设备. 这种拓扑所带来的问题是:受制于STP,对于同一个VLAN的 ...

  5. linux下生成静态库和动态库

    linux下生成静态库和动态库 一.动态库.静态库简介 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常.本质上 ...

  6. LINUX之静态库共享库

    linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为 ...

  7. Linux中静态库和动态库(共享库)的区别

    1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...

  8. Linux中动态库(共享库)的制作与使用

    0. 库的基本概念 见博客:Linux中静态库的制作与使用 0.1 动态库的工作原理 首先回忆一下静态库,使用静态库,在GCC进行链接时,会把静态库中代码打包到可执行程序中. 但是使用动态库,在GCC ...

  9. Linux平台gcc和动态共享库的基础知识

    http://www.javaeye.com/topic/261176 对大多数不从事Linux平台C语言开发的人来说,GNU gcc的一套工具和Linux平台的共享库的使用还是十分陌生的,其实我也不 ...

  10. 限制会话id服务端不共享_会话控制 - able-woman - 博客园

    会话控制是什么? cookie和session都是跟踪整个会话过程的技术手段.而会话,就是用户通过浏览器和服务器的一次通话. 为什么要有会话控制? 因为HTTP协议是无状态的,服务器不知道用户上一次做 ...

最新文章

  1. 使用NSURLConnection实现大文件断点下载
  2. 全卷积神经网路【U-net项目实战】ISBI 挑战数据集图像分割-keras实现
  3. 牛客 华为机试(我的代码记录)
  4. 浅析低延迟直播协议设计:RTP/RTCP
  5. linux:vim中全选复制
  6. python中计算列表的平均值_如何计算python中元组列表的平均值?
  7. Pytorch搭建自己的模型
  8. javascript Event loop
  9. vnc远程桌面_手机vnc远程桌面,手机vnc远程桌面,使用配置详解
  10. 安装3dmax出现:error 1311 找不到源文件
  11. 软件设计架构中各模块breakdown
  12. 【回溯】有蹩脚的马踏棋盘——思路巨清晰!!!
  13. java五子棋技术路线,一位老码农的编程简史
  14. vue 跳转路由后返回上一页还是当前页面,但是路由地址有改变(已解决)
  15. C/C++使用strcpy函数报错:“XXX处有未经处理的异常:0xC0000005:写入位置0x00000000时发生访问冲突”
  16. LBG算法、Lloyd算法和K均值算法
  17. Android面试题(含答案)
  18. 在Chem 3D软件用什么方法可以改变背景
  19. reids 5.0.4 cluster集群模式部署实操。
  20. 新致新知 | 开启图谱赋能认知新篇章

热门文章

  1. 静态IP和动态IP有什么区别?什么是静态IP?
  2. Spring系列04德鲁伊连接池配置
  3. react加水印_图片添加水印
  4. 计算机编程龟兔赛跑,实例编程:龟兔赛跑的小游戏
  5. pycharm typo
  6. 征途服务器关闭注册,你不是一个人 征途手机版老服务器的进入法则
  7. 心理测试单机小软件,成人心理测评系统(单机版)
  8. 平板电脑的尺寸是怎么算出来的
  9. 广东省计算机免考申请多久可以审核,2019年广东自考免考政策 免考申请条件、时间及流程...
  10. 公文标题排版(样式修改)