iOS二进制文件大小 - LinkMapFile分析

什么是Link Map File什么是快乐星球? 什么是Link Map File?链接映射文件,是Xcode生成的一个链接过程记录文件。Xcode在构建可执行文件的过程中,先对每个文件进行单独编译生成目标文件(.o文件),然后再将目标文件链接生成最终可执行文件,Link Map File就是记录链接过程中的信息文件,它用来描述可执行文件的具体结构,包含可执行文件代码段、数据段等地址分布信息有什么作用用来分析二进制大小组成,分析二进制类大小,可以找出体积增长缩小趋势原因等如何开启Xcode默认配置下是不生成Link Map file的,需要手动开启。具体开启方式为:在Xcode项目工程 Project -> Build Setting 中找到 Write Link Map File 选项,设置为Yes然后在 Path to Link Map File 选项中配置生成的文件存放位置例如:$(SRCROOT)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt文件结构生成的的Link Map File文件内容中
Link Map File 2021年02月26日 909次浏览

Mach-O二进制

Mach-O 是苹果公司自己维护的且独有的二进制格式,它是 Mach Object File Format 的简写,这是一个源于 NeXTSTEP 的项目。苹果官方对于 Mach-O 相关的文档很少,不过好在有开源的 [XNU](https://opensource.apple.com/source/xnu/xnu-6153.11.26/EXTERNAL_HEADERS/mach-o/) 源码,里面可以找到一些 Mach-O 相关的信息,如果感兴趣可以阅读一下
Mach-O 2019年12月14日 4,244次浏览

MariaDB-10安装

本文是在CentOS7中安装MariaDB(MySql)的一些常见操作步骤,在CentOS7默认的yum源中是没有MariaDB数据源的,所以要么采用手动下载安装包进行安装,要么手动添加MariaDB的yum下载数据源,再使用yum命令进行安装,这里使用的就是后面这种方式。创建MariaDB.rep
mariadb 2019年03月01日 3,267次浏览

Autoreleasepool底层原理

Autoreleasepoolintmain(intargc,constchar*argv[]){@autoreleasepool{//}return0;}使用clangrewrite命令重写main.m文件:clang-rewrite-objcmain.m最终生成了一个main.cpp文件,进文件找到main()函数:intmain(intargc,constchar*argv[]){/*@autoreleasepool*/{__AtAutoreleasePool__autoreleasepool;}return0;}根据注释/*@autoreleasepool*/可以得知@autoreleasepool{}被转换了一个__AtAutoreleasePool类型的变量__autoreleasepool,在main.cpp文件里搜索一下__AtAutoreleasePool,可以得知__AtAutoreleasePool是一个结构体:struct__AtAutoreleasePool{__AtAutoreleasePool(){atautoreleasepoolobj=objc_aut
2018年05月07日 2,228次浏览

IPFS

IPFS(InterPlanetaryFileSystem,星际文件系统)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。自2014年开始由ProtocolLabs(协议实验室)在开源社区的帮助下发展,其最初由JuanBenet设计,它是一个开源代码项目。IPFS本质上是一种内容可寻址、版本
IPFS 2017年10月14日 3,875次浏览

Truffle tutorial

Truffle是针对基于以太坊的Solidity智能合约开发的一套开发框架,本身基于Javascript。Truffle对客户端做了深度集成,开发、测试、部署一行命令都可以搞定,不用再记那么多环境地址,繁重的配置更改,及记住诸多的命令。它提供了一套类似maven或gradle这样的项目构建机制,能自
2017年06月16日 2,507次浏览