zoukankan      html  css  js  c++  java
  • Linux 下创建和使用静态库

    Linux 下使用 ar 工具(Windows 下vs使用lib.exe,将目标文件压缩到一起,并且对其进行编号和索引,以便于查找和检索),创建步骤如下图所示:

    Linux 下静态库命名规范, lib[your_library_name].a,其中lib为前缀,中间是静态库名,后缀名是 .a

    1. 将源文件编译成目标文件 .o (假设源文件为 Math.cpp)

     g++  -c  Math.cpp   执行此命令后,便会生成 Math.o 目标文件

    2. 然后用 ar 工具将目标文件打包成 .a 静态库文件

    ar  -crv  libmath.a  Math.o  执行此命令后,便会生成 libmath.a 静态库

    3. 使用该静态库

    g++  test.cpp -L./  -lmath  

    -L:指定该静态库的路径

    -l:指定链接时需要的库(编译器在查找链接库时,有隐含的命名规则,即在给出的名字前面加上 lib ,在后面加上 .a 或 .so 来确定库的名称,所以,我们只需要在-l后面加上 该静态库的名字就行)

    其中,-L和-l后面可以没有空格,有空格也是可以的

    通过上面简单的介绍,我们知道 静态库 可以达到代码的复用,那为什么还引入动态库呢?

    静态库的缺陷:

    (1)空间浪费

    (2)静态库对程序的更新,部署和发布也会带来麻烦,如果某个静态库更新了,所有使用它的应用程序都需要重新编译,发布给用户(对于玩家,只是一个很小的改动,却导致整个程序重新下载,很麻烦)

  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/chen-cai/p/10518345.html
Copyright © 2011-2022 走看看