当前位置:网站首页>swift 使用SMAMB2包,重新打包的心酸历程
swift 使用SMAMB2包,重新打包的心酸历程
2022-07-20 04:22:00 【nginx】
这种方式还是非常简单的,如果仅仅是这样还不至于专门写一篇文章来纪念他。问题就出在我的项目需要用到SMB协议去读取文件,但是并不是直接读取!
pod "SMAMB2"
通俗一点来讲就是我的用法和 SMAMB2包提供的用法不同!
那就意味我要重新打包了,而当我看了一下源码发现,AMSMB2竟然又用了libsmb2包,将libsmb2打包成 .a 文件。
刚开始看到两个项目的 README 我还以为会很简单。但是万万没想到,光是打包我就经历了两天才成功!
第一个坎:
我是用的Mac mini安装brew,安装好多次都失败了,在度娘上寻找了一圈。最后在终端输入一下代码:
参考:https://blog.csdn.net/qq_40922656/article/details/123532784
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
经过不懈的努力,终于解决了这个问题。
第二个坎:

也不知道是什么鬼,眼看要到开始生成 .a文件的时候返回找不到什么玩意。
经过无休止的百度之后,终于发现了解决方案。
但是让我万万没想到的是,这个指令竟然需要到 AMSMB2/buildtool/libsmb2 中去执行(这里的libsmb2文件夹是源码中没有的,需要之后自己添加,如果不添加的话就会自动从github中拉去最新的libsmb2项目)
autoreconf -vif
因为我的项目需要的用法就是要自己重写libsmb2,因此我已经提前准备好了修改之后的libsmb2(公司大佬修改的,用C写的,在下C仅局限于输出Hello world,见笑了)
经过终端编译后,出现一下这一幕就表示你应该是成功了

这个时候就可以进入到 AMSMB2/buildtool 文件夹下执行build命令了!
./build.sh

出现以上,就表示你的 .a文件已经构建完成了(目前还是不太清楚这些WARNING是什么意思,如果有明白的大佬欢迎留言指导!)
到此就可以看到你的 libsmb2-ios.a 文件已经安安静静的躺在 AMSMB2/libsmb2 文件夹下了!
第三个坎:
我将已经打包完成的 .a文件并入 AMSMB2项目想要重新打包并生成新的静态 .framework给iOS使用。但是开始编译那一刻我心态崩了啊,祖国山河一片红叉!!!

经过我向公司大佬的咨询在 libsmb2.h 文件中加入以下代码:
very nice,终于干干净净的编译通过了,哈哈哈。
#ifndef UINT64_MAX
#include <stdint.h>
#endif
到这里我心酸的自定义libsmb算是画上一部分句号,至于其他的还有一部分内容没有解决,等解决完之后再决定是不是需要写下来!
参考网站:
AMSMB2项目:https://github.com/amosavian/AMSMB2
libsmb2项目:https://github.com/sahlberg/libsmb2
autoreconf -vif:https://stackoverflow.com/questions/15448582/installed-libtool-but-libtoolize-not-found
边栏推荐
- Wps如何清除最近打开的记录?Wps清除本地记录的方法
- Calculation of parameter quantity (param) and floating point calculation quantity (flops) in the network
- Capacity scheduling absolute value configuration queue usage and pit avoidance
- excel宏被禁用如何启用?excel无法启用宏的解决方法
- 软件界面和简单系统仿真
- 卷积神经网络CNN常用的几个模型
- 容量调度绝对值配置队列使用与避坑
- Thread pool code and testing
- Excel怎么转换为Word格式?将Excel转换为Word格式的方法
- 虚实相生,构建数智生活|HMS Core. Sparkle应用创新分论坛报名启动
猜你喜欢
百家云与美股上市公司富维薄膜达成合并协议,最快于下半年完成合并
何为整型提升(实例)
China's first white paper on the application of electronic signatures in the construction industry was released
【MUDUO SOCKET】InetAddress 封装SOCKET地址类型
HMS Core安全检测服务如何帮助大学新生防范电信诈骗?
Explain fcos: full revolutionary one stage object detection in detail
金蝶上半年“答卷”预告:大客户战略持续突破,ARR同比增长45%以上
一文详解|Go 分布式链路追踪实现原理
详解决策树与随机森林
Hands on experiment of network and VPC
随机推荐
This beta version of Typora is expired,please download and install a newer version.
基于ESP32的RGB点阵显示器
The difference between voice message and voice notification in okcc call center
【花雕体验】20 音乐可视化:ESP32_C3与WS2812B的系列尝试
Advanced one stage of target detection
A brief introduction to redis, the installation and configuration of redis source code, and the installation and mounting of docker
Hands on experiment of network and VPC
单机的tidb能用到生产环境上吗?
Exploration and practice of dewu app data simulation platform
Trax:如何打赢夏日冰淇淋市场的甜蜜之战?
NFT潮鞋AR互动零基础教程来啦!
Functions and advantages of interactive design of AR digital exhibition hall
Apache Flink 的 Per-Job 提交流程
The difference between break, continue and return
Metauniverse 3D wilderness
Implementation principle of scala function & method and function & method
容量调度绝对值配置队列使用与避坑
C语言中getchar()函数的详解
记录uni-app 打包成apk后获取定位
图解LeetCode——731. 我的日程安排表 II(难度:中等)