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

  • 相关阅读:
    Python 3: 加密简介
    5 个最受人喜爱的开源 Django 包
    ROS tf-增加坐标系
    ROS tf监听编写
    ROS tf广播编写
    ROS tf基础使用知识
    ROS tf-数据类型
    Windows Vistual Studio 2013/2015 MRPT安装
    OMPL 在windows下的安装
    CMake 设置Target输出目录和后缀名
  • 原文地址:https://www.cnblogs.com/qingxia/p/2650855.html
Copyright © 2011-2022 走看看