【发布时间】:2011-06-23 00:06:29
【问题描述】:
谁能解释一下这个设置的含义和作用?
编辑:感谢您的回答。了解崩溃报告。让我问一下——链接映射文件对我的应用程序的执行有任何影响吗?
【问题讨论】:
-
没有。编译时间可能会稍长一些,但据我所知,您最终会得到完全相同的可执行文件。
谁能解释一下这个设置的含义和作用?
编辑:感谢您的回答。了解崩溃报告。让我问一下——链接映射文件对我的应用程序的执行有任何影响吗?
【问题讨论】:
在您的目标构建设置中,确保将Write Link Map File 设置为YES
【讨论】:
默认是...
$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt.
所以对于一个名为AtoZ的目标...
.../DerivedData/AtoZ/Intermediates/AtoZ.build/Debug/AtoZ.build/AtoZ-LinkMap-normal-x86_64.txt
【讨论】:
链接映射文件是一个文本文件,详细说明了数据、代码等在可执行文件中的位置。在程序崩溃时进行堆栈跟踪以及检查内存非常方便。
只需让 Xcode 制作一个,然后在 textedit 或其他任何方式中打开它。您将看到所有方法名称和变量名称以及地址。
如果您将应用提交到应用商店,保留地图文件至关重要,因此如果 Apple 设法使您的应用崩溃,您将更有可能获得崩溃报告的头或尾。
【讨论】:
仅当您生成链接地图时才相关。如果您在选择链接地图文件的路径时查看设置窗口的底部,它会显示:
此设置定义了当写入链接映射文件设置被激活时链接器写入的映射文件的路径。默认情况下,将为每个架构和构建变体编写一个单独的文件,这些文件将在 Intermediates 目录中为正在链接其产品的目标生成。 [LD_MAP_FILE_PATH, -map]
对于 Write Link Map File 它说:
激活此设置将导致链接器将映射文件写入磁盘,其中详细说明了输出图像中的所有符号及其地址。映射文件的路径由“链接映射文件的路径”设置定义。 [LD_GENERATE_MAP_FILE,-map]
除非您在嵌入式系统上工作,否则需要查看链接图是相当不寻常的。
【讨论】: