zoukankan      html  css  js  c++  java
  • Linux库文件.a .so

    1.

    .o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件
    .a 是好多个.o合在一起,用于静态连接 ,即STATIC mode,多个.a可以链接生成一个exe的可执行文件
    .so 是shared object,用于动态连接的,和windows的dll差不多,使用时才载入。


    得到了ts:error while loading shared libraries: libs.so: cannot open shared object file: No such file or directory 系统不能找到我们自己定义的libs.so,那么告诉他,修改变量LD_LIBRARY_PATH。

    2. 怎么生成so动态库文件?

    编译:得到输出文件libs.o
    gcc -fPIC -g -c s.c -o libs.o
     
    链接:得到输出文件libs.so
    gcc -g -shared -Wl,-soname,libs.so -o libs.so libs.o -lc

    得到了ts:error while loading shared libraries: libs.so: cannot open shared object file: No such file or directory 系统不能找到我们自己定义的libs.so,那么告诉他,修改变量LD_LIBRARY_PATH。

    3. 怎么生成a静态库文件?

    编译:得到输出文件libs.o
    gcc -fPIC -g -c s.c -o libs.o
    ar r .a .o

    4.

    看.a结构,找其中的原文件,用ar -t YourFile.a

    看动态库用 nm -d lib*.so

  • 相关阅读:
    20170519
    20170515
    20170511
    20170509
    20170505
    使用 FirewallD 构建动态防火墙
    Elasticsearch 5.2.1Cluster 搭建
    elk,centos7,filebeat,elasticsearch-head详细安装步骤
    elk,centos7,filebeat,elasticsearch-head集成搭建
    memcached
  • 原文地址:https://www.cnblogs.com/qingxia/p/2650855.html
Copyright © 2011-2022 走看看