.so文件是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。so文件是 elf 文件,elf 文件后缀名是.so,所以也被称之为.so文件

1、so文件就跟.dll文件差不多。

2、一般来说,so文件就是常说的动态链接库, 都是C或C++编译出来的。与Java比较它通常是用的Class文件(字节码)。

3、Linux下的so文件时不能直接运行的,一般来讲,.so文件称为共享库。

4、so文件使用方法

(1)动态库的编译。这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。
命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 不用该标志外部程序无法连接。相当于一个可执行文件。

(2)动态库的链接
这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test:
命令:$ gcc test.c -L. -ltest -o test
命令:$ ldd test执行test,可以看到它是如何调用动态库中的函数的。

.so文件(so文件是什么)相关推荐

  1. C++ 笔记(25)— 理解 C++ 中的头文件和源文件的作用

    1. C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件: .cpp 文件,被称作 C++ 源文件,里面放的都是 C++ 的源代码 .h 文件,被称作 C++ 头文件,里面放的也是 C++ ...

  2. linux scp移动文件夹,linux scp远程拷贝文件及文件夹

    [http://www.jb51.net/LINUXjishu/73131.html] 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/ro ...

  3. 判断文件或文件夹(目录)是否存在 C/C++ win/linux通用

    一.windows下使用_access()或linux下使用access()函数 windows下使用_access()函数 所在头文件:<io.h> 函数原型:int _access(c ...

  4. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  5. Linux文件,文件描述符以及dup()和dup2()

    一.Linux中文件 可以分为4种:普通文件.目录文件.链接文件和设备文件. 1.普通文件 是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据. ls -lh 来查 ...

  6. vue html引入资源dev下404,webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)...

    最近在使用webpack + vue做个人娱乐项目时,发现npm run build后,css js img静态资源文件均找不到路径,报404错误...网上查找了一堆解决办法,总结如下 一.首先修改c ...

  7. java file 操作之创建、删除文件及文件夹

    本文章向大家讲解java文件的基本操作,包括java创建文件和文件夹.java删除文件.java获取指定目录的全部文件.java判断指定路径是否为目录以及java搜索指定目录的全部内容等.请看下面实例 ...

  8. linux下的文件和文件夹的权限问题

    1 文件和文件夹的权限 文件和文件夹的权限设置的根本目的是控制人对它们的访问. 2 用户分类 本文件的拥有者.本文件所属的grou.其它用户. 3 也就是说 在读写文件或者文件夹时,要看看自己是属于哪 ...

  9. Win10系列:JavaScript访问文件和文件夹

    在实际开发中经常会遇到访问文件的情况,因此学习与文件有关的操作对程序开发很有帮助,关于文件操作的一些基本技术,在前面章节中有专门基于C#语言的详细讲解,本节主要介绍如何使用HTML5和JavaScri ...

  10. asp在线压缩和解压缩文件(文件夹)

    asp在线压缩和解压缩文件(文件夹) <% '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ '\\ '\\ 1. c:\ ...

最新文章

  1. string转map集合_[系列文章] Go - Map 集合
  2. Linux下which、whereis、locate、find 命令的区别
  3. swoole client php,Swoole Client
  4. linux下如何bash文件,Linux系统的文件管理命令及bash的相关工作特性
  5. 微信小程序时代,哪些人能赚到第一桶金
  6. 【linux C】C语言中常用的几个函数的总结【二】
  7. VM虚拟机Linux克隆后网卡的相关操作
  8. POJ 1398 Complete the sequence! ★ (差分)
  9. 记一次MacOS 证书信任配置不生效的解决方法(clashX报错:SecTrustSettingsCopyCertificates error: -25262)
  10. 使用socks5代理实现SSH安全登录
  11. antd vue form 手动校验_vue测试模板与jsonSchema自动生成elment组件
  12. Windows远程桌面连接(有密码和无密码连接)
  13. java版flashplayer下载安装_mac版flash player
  14. 修改element-ui 下拉框样式
  15. 计算机语言abs,Abs函数
  16. super expression must either be null or a function 报错解决方法
  17. I2S/IIS总线介绍及相关EMC问题
  18. 手把手带你搭建一个简单的webpack脚手架(一)
  19. FPS的瞄准准心的一种写法
  20. 人工智障也刷题!Kaggle 入门之实战泰坦尼克号

热门文章

  1. [BZOJ4134][JZOJ4401]ljw和lzr的hack比赛
  2. oracle的多个exclude,记录一下expdp exclude的用法
  3. J.A.R.V.I.S.
  4. arcmap怎么保存相对路径_如何将arcgis的mxd文档存储为相对路径
  5. Windows7 Ghost 旗舰装机版
  6. nc 监听数据_nc 命令使用详解
  7. 我与忠和资本的未结之缘
  8. Android性能优化-Apk瘦身(1)
  9. ardupilot 关于设备车Rover的学习《1》------如何编译下载
  10. 苹果账号申请流程——99刀(个人版或公司版 ),299刀(企业版)