前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity与 SO 交互 ☀️| .so文件(动态链接库 ) 基础知识科普

Unity与 SO 交互 ☀️| .so文件(动态链接库 ) 基础知识科普

作者头像
呆呆敲代码的小Y
发布2021-08-25 14:37:56
1.5K0
发布2021-08-25 14:37:56
举报
????前言

因为最近用到了so文件相关内容

所以来学习一下.so文件相关的知识,正好来写博客也当是记录并分享一些知识

最终目的是在Unity中与so文件进行交互处理,但是本篇文章需要先对so文件有一个基本的认识

这样在后面交互流程中也能 加深一点理解


????SO文件

SO文件概述

遇到一个之前并没有过多接触过的新知识该怎么办?

那肯定是先在百度、CSDN等网上平台搜一下呀,正常学习思路都是这样吧~

所以先来看一下百度百科对于.so文件的描述

  • SO文件Linux下共享库文件,即编译好的可以供其他程序使用的代码和数据。
  • 它的文件格式被称为ELF文件格式,节约资源,加快速度,代码升级简化。
  • 由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。
  • Android系统也同样开放了C/C++接口供开发者开发Native程序。

so文件特点

  • so文件与dll文件类似
  • so文件就是常说的动态链接库,都是C或者C++编译出来的
  • Linux下的so文件时不能直接运行的,一般来讲,.so文件称为共享库

so文件的使用方法

so文件跟.dll文件差不多,因为在Unity里面.so文件是通过: [DllImport("DLLName")]方式来调用的

可能一开始还以为这是调用dll文件的方法,结果却是调用so文件的方法~

至于具体怎样调用交互,在后面的文章会讲到!

  1. 动态库的编译 一般是将一个头文件so_test.h三个.c文件 test_a.ctest_b.ctest_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文件怎样在Android和Unity中调用这个so文件进行交互 使用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ????前言
  • ????SO文件
  • ????总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档