设为首页 加入收藏

TOP

对Link Map File的初步认识(一)
2019-08-31 00:20:29 】 浏览:84
Tags:Link Map File 初步 认识

Link Map File中文直译为链接映射文件,它是在Xcode生成可执行文件的同时生成的链接信息文件,用于描述可执行文件的构造部分,包括了代码段和数据段的分布情况。Xcode在生成可执行文件的时候默认情况下不生成该文件,需要开发者手动设置Target --> Build Setting --> Write Link Map File为YES:
Link Map Setting
这里还可以设置Link Map存放的位置,默认的位置为:

$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt

例如:

/Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Intermediates.noindex/LinkMapTest.build/Debug-iphonesimulator/LinkMapTest.build/LinkMapTest-LinkMap-normal-x86_64.txt

开发者也可以根据自己的需要自行设置该文件的位置。

打开Link Map File,里面包含了以下几个部分:

1. Path

# Path: /Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Products/Debug-iphonesimulator/LinkMapTest.app/LinkMapTest

Path是生成可执行文件的路径。

2. Arch

# Arch: x86_64

Arch指代架构类型。

3. Object files:

# Object files:
[ 0] linker synthesized
[ 1] /Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Intermediates.noindex/LinkMapTest.build/Debug-iphonesimulator/LinkMapTest.build/LinkMapTest.app-Simulated.xcent
[ 2] /Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Intermediates.noindex/LinkMapTest.build/Debug-iphonesimulator/LinkMapTest.build/Objects-normal/x86_64/ViewController.o
[ 3] /Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Intermediates.noindex/LinkMapTest.build/Debug-iphonesimulator/LinkMapTest.build/Objects-normal/x86_64/main.o
[ 4] /Users/zhanggui/Library/Developer/Xcode/DerivedData/LinkMapTest-ffnpzjkbsmhwvdcxorqbxpyvjtob/Build/Intermediates.noindex/LinkMapTest.build/Debug-iphonesimulator/LinkMapTest.build/Objects-normal/x86_64/AppDelegate.o
[ 5] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks//Foundation.framework/Foundation.tbd
[6]/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/usr/lib/libobjc.tbd
[7]/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks//UIKit.framework/UIKit.tbd

Object Files列举了可执行文件里所有的obj以及tbd。每一行代表对文件的编号。例如ViewController.o文件,其编号为2。编号的具体作用稍后介绍。

4. Sections

# Sections:
# Address   Size        Segment Section
0x100001730 0x00000333  __TEXT  __text
0x100001A64 0x0000002A  __TEXT  __stubs
0x100001A90 0x00000056  __TEXT  __stub_helper
0x100001AE6 0x00000A27  __TEXT  __objc_methname
0x10000250D 0x0000003C  __TEXT  __objc_classname
0x100002549 0x0000086D  __TEXT  __objc_methtype
0x100002DB6 0x0000007A  __TEXT  __cstring
0x100002E30 0x00000182  __TEXT  __entitlements
0x100002FB4 0x00000048  __TEXT  __unwind_info
0x100003000 0x00000010  __DATA  __nl_symbol_ptr
0x100003010 0x00000010  __DATA  __got
0x100003020 0x00000038  __DATA  __la_symbol_ptr
0x100003058 0x00000010  __DATA  __objc_classlist
0x100003068 0x00000010  __DATA  __objc_protolist
0x100003078 0x00000008  __DATA  __objc_imageinfo
0x100003080 0x00000BE8  __DATA  __objc_const
0x
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Windows下修改iTunes备份路径 下一篇Object C学习笔记12-集合

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目