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

  • 相关阅读:
    对jquery的 attr()和prop()理解
    你真的了解javascript吗
    js代码的一些小技巧
    导出导入数据库
    Mysql授权root用户远程登录
    Centos 忘记root密码怎么办?
    linux挂载概念简述:
    centos7防火墙设置
    centos 防火墙
    centos共享目录
  • 原文地址:https://www.cnblogs.com/qingxia/p/2650855.html
Copyright © 2011-2022 走看看