zoukankan      html  css  js  c++  java
  • 静态库和共享库

    概述

    如果我们有些功能要给别人用,但是又不想公开代码实现,就可以将源代码编译成库提供。库分为共享库静态库

    静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系。共享库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。

    静态库

    静态库.a结尾 命名格式:libXXX.a,对应Window下的.lib文件

    制作静态库

    制作静态库就是先将所有的源文件编译成目标文件,然后通过ar rcs将所有目标文件打包成libXXX.a

    $ gcc -c xxx.c
    $ ar rcs libXXX.a *.o
    

    静态库使用

    共享库

    共享库在Window下 .dll Linux环境下 .so结尾 Mac环境下dylib

    制作共享库

    目录如下

    $gcc -fPIC -c *.c
    $gcc -shared -o libXXX.so  *.o
    

    共享库使用

    与静态库一样现指定库路径编译链接。

    动态库在执行时还是需要配置库的路径,需要配置动态库路径的环境变量,由于当前环境为Mac,后续在说具体解决方案。

  • 相关阅读:
    URLs
    上班确实累!!!
    转: java 双向map
    HttpReader
    QQ龙虎榜数据接口
    简易行情界面
    下载新浪的行情数据
    淘宝上的大智慧L2数据,月卡最便宜是8元钱,这个也可以获取BBD、DDX等数据!
    获取历史K线数据的几个方法
    好久不写博了.
  • 原文地址:https://www.cnblogs.com/CoderHong/p/10091020.html
Copyright © 2011-2022 走看看