Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我使用nm查看Mac上的符号列表时,$ld$add$os10.4$前缀意味着什么?

当我使用nm查看Mac上的符号列表时,$ld$add$os10.4$前缀意味着什么?
EN

Stack Overflow用户
提问于 2012-04-12 17:35:45
回答 2查看 305关注 0票数 2

我的iPhone应用程序没有链接到iPhone模拟器,我有一些问题。它告诉我有一些未定义的符号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Undefined symbols for architecture i386:
  ".objc_class_name_NSRunLoop", referenced from:
      pointer-to-literal-objc-class-name in SampleBrowser.cpp.o
  ".objc_class_name_NSDate", referenced from:
      pointer-to-literal-objc-class-name in SampleBrowser.cpp.o
  ".objc_class_name_NSAutoreleasePool", referenced from:
      pointer-to-literal-objc-class-name in SampleBrowser.cpp.o
      pointer-to-literal-objc-class-name in libRenderSystem_GLES2Static.a(OgreEAGL2Window.mm.o)
  ".objc_class_name_UIApplication", referenced from:
      pointer-to-literal-objc-class-name in SampleBrowser.cpp.o
      pointer-to-literal-objc-class-name in libOIS.a(iPhoneInputManager.mm.o)
  ".objc_class_name_NSObject", referenced from:
      .objc_class_name_AppDelegate in SampleBrowser.cpp.o
  ".objc_class_name_UIView", referenced from:
      .objc_class_name_SampleBrowserGestureView in SampleBrowser.cpp.o
      .objc_class_name_InputDelegate in libOIS.a(iPhoneInputManager.mm.o)
      .objc_class_name_EAGL2View in libRenderSystem_GLES2Static.a(OgreEAGL2View.mm.o)
  ".objc_class_name_UIScreen", referenced from:
      pointer-to-literal-objc-class-name in libOIS.a(iPhoneInputManager.mm.o)
      pointer-to-literal-objc-class-name in libRenderSystem_GLES2Static.a(OgreEAGL2Support.mm.o)
  ".objc_class_name_UIAccelerometer", referenced from:
      pointer-to-literal-objc-class-name in libOIS.a(iPhoneInputManager.mm.o)
      pointer-to-literal-objc-class-name in libOIS.a(iPhoneAccelerometer.mm.o)

但是这些看起来像我所链接的框架中的Objective类的名称。我想做一些研究,所以我使用nm来查看我所链接的框架的符号列表。例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
josh$ nm /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/Frameworks/Foundation.framework/Foundation -arch i386 -g | grep objc_class
001a4500 S $ld$add$os10.4$.objc_class_name_NSArray
001a4501 S $ld$add$os10.4$.objc_class_name_NSCalendar
001a4502 S $ld$add$os10.4$.objc_class_name_NSData
001a4503 S $ld$add$os10.4$.objc_class_name_NSDate
001a4504 S $ld$add$os10.4$.objc_class_name_NSDateComponents
001a4505 S $ld$add$os10.4$.objc_class_name_NSDictionary
001a4506 S $ld$add$os10.4$.objc_class_name_NSEnumerator
001a4507 S $ld$add$os10.4$.objc_class_name_NSException
001a4508 S $ld$add$os10.4$.objc_class_name_NSInputStream
001a4509 S $ld$add$os10.4$.objc_class_name_NSInvocation
001a450a S $ld$add$os10.4$.objc_class_name_NSLocale
001a450b S $ld$add$os10.4$.objc_class_name_NSMethodSignature
001a450c S $ld$add$os10.4$.objc_class_name_NSMutableArray
001a450d S $ld$add$os10.4$.objc_class_name_NSMutableData
001a450e S $ld$add$os10.4$.objc_class_name_NSMutableDictionary
001a450f S $ld$add$os10.4$.objc_class_name_NSMutableSet
001a4510 S $ld$add$os10.4$.objc_class_name_NSNull
001a4511 S $ld$add$os10.4$.objc_class_name_NSObject
001a4512 S $ld$add$os10.4$.objc_class_name_NSOutputStream
001a4513 S $ld$add$os10.4$.objc_class_name_NSRunLoop
001a4514 S $ld$add$os10.4$.objc_class_name_NSSet
001a4515 S $ld$add$os10.4$.objc_class_name_NSStream
001a4516 S $ld$add$os10.4$.objc_class_name_NSTimeZone
001a4517 S $ld$add$os10.4$.objc_class_name_NSTimer
001a4548 S $ld$add$os10.4$.objc_class_name_NSURL
001a4518 S $ld$add$os10.4$.objc_class_name_NSUserDefaults
001a4549 S $ld$add$os10.5$.objc_class_name_NSURL
001a454a S $ld$hide$os10.4$.objc_class_name_NSFileWrapper
001a454b S $ld$hide$os10.5$.objc_class_name_NSFileWrapper
001a454c S $ld$hide$os10.6$.objc_class_name_NSFileWrapper

现在,在我看来,这个符号列表让我觉得框架存档正在导出链接器正在寻找的类。唯一不同的是这个$ld$add$os10.4$前缀。我想知道它为什么在那里,它意味着什么,这可能是造成我问题的原因吗?

编辑:看起来这是我的问题:Link errors in Xcode when targeting iPhoneSimulator

简而言之,去掉编译器标志-=2会导致不同的符号命名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-12 19:52:24

$ld$add$osXX.X$SYMBOL是一个链接器指令,允许在库中重定向符号解析。该命令位于二进制文件的__DATA部分,并由ld在链接时进行解析,以更改导出符号的可见性。OS上的链接器实际上接受了几种不同类型的命令:

$ld$hide$osXX.X$SYMBOL将该符号添加到忽略集中。链接器将不再将该符号导出到任何与库链接的二进制文件,即使它可能具有全局可见性。

无论定义是否存在,$ld$add$osXX.X$SYMBOL都会在链接时将该符号添加到二进制文件中。

$ld$install_name$osXX.X将特定二进制中的符号定义重定向到另一个二进制。这用于解决OS中的一个问题,在该问题中,CoreGraphics曾经作为ApplicationServices的子框架存在。所有符号现在都被重定向到适当的框架中。

$ld$compatibility_version强制与早期版本的链接器兼容。

在您的例子中,您遇到了基金会中的兼容性问题。OS将NSFileWrapper在AppKit中导出,直到10.7时该符号被隐藏并移到Foundation。通常,这意味着AppKit的作者将隐藏类定义的_OBJC_CLASS_$、_OBJC_METACLASS_$和_OBJC_IVAR_$部分,以使链接器在其他地方查找该符号。但是,由于您删除了-fobjc-abi-version标志,编译器默认返回到旧的1.xABI,它只需要隐藏和查找一个可能不存在于您试图链接的二进制文件中的.objc_class_name

至于您未定义的符号,这是一个简单的文件扩展名问题。.cpp是c++ 专用的文件(意思是没有NSRunloop、MSMutableArray、NSObject等)。如果希望访问这些对象,请用扩展名.mm重命名违规文件,这是一个标准的objC++文件。链接QuartzCore (用于EAGL2View)和UIKit (用于UIScreen和好友以及UIAccelerometer)也是一个不错的主意。

票数 2
EN

Stack Overflow用户

发布于 2012-04-12 19:12:26

我不太熟悉iOS SDK,但是为什么要为“i386”编译呢?几天前,我在玩PhoneGap时遇到了类似的问题。我刚刚从我的i386项目设置中删除了“XCode”,之后在模拟器中一切看起来都很好。尽管我可能错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10134189

复制
相关文章
js读取本地json文件_jquery读取本地json文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
21.6K0
js读取本地json文件_jquery读取本地json文件
【python】读取json文件
最近要打个比赛,在处理数据的时候,发现数据竟然是json文件的,于是上网查了下,展示给大家O.O
zenRRan
2018/07/25
8.7K0
【python】读取json文件
Java 读取 json文件
和this.getClass().getClassloader().getResource("") 区别??
ydymz
2018/09/10
4.6K0
json文件的读取_c语言文件读取
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。有关于json的相关信息,可参考:json百度百科。
全栈程序员站长
2022/11/07
5.6K0
json文件的读取_c语言文件读取
js读取本地json_vue读取本地json文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
13.2K0
python从txt文件读取数据
  (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!)
py3study
2020/01/19
3.9K0
python从txt文件读取数据
python读取txt文件中的json数据
txt文本文件能存储各式各样数据,结构化的二维表、半结构化的json,非结构化的纯文本。 存储在excel、csv文件中的二维表,都是可以直接存储在txt文件中的。
全栈程序员站长
2022/08/30
7.2K0
python读取txt文件中的json数据
webpack json_vue读取json文件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169235.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
2.5K0
webpack json_vue读取json文件
scala读取解析json文件
import scala.util.parsing.json.JSON._ import scala.io.Source object ScalaJsonParse { def main(args: Array[String]): Unit = { var tt = Map.empty[String, Any] val tree = parseFull(Source.fromFile("/data/result.json").mkString) tt = tree mat
机器学习和大数据挖掘
2019/07/02
6.5K0
echarts读取本地json数据文件分析【Ajax】
使用场景:使静态页面获取json文件内容(更具体些,比如echars表想获取本地json数据),这里以读取data.json为例
来杯Sherry
2023/05/25
2K0
echarts读取本地json数据文件分析【Ajax】
Python Numpy 从文件中读取数据
测试文件内容(test1.txt) hello,123,nihao 8,9,10 io,he,no 测试代码 import numpy # dtype:默认读取数据类型,delimiter:分隔符 world_alcohol = numpy.genfromtxt("test1.txt", dtype=str, delimiter=",") # 数据结构 print(type(world_alcohol)) # 数据内容 print(world_alcohol) # 帮助文档 print(help(nump
山海散人
2021/03/03
4.2K0
Android数据加载和Json解析——蓝本
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117232.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
5870
盘点Python中4种读取json文件和提取json文件内容的方法
前几天在才哥的交流群有个叫【杭州-学生-飞飞飞】的粉丝在群里问了一个json文件处理的问题。
Python进阶者
2021/12/09
12.3K0
盘点Python中4种读取json文件和提取json文件内容的方法
pyspark之从HDFS上读取文件、从本地读取文件
hdfs上的路径: path="hdfs:///主机名:端口号/地址" 本地上的路径: path"file:///本地地址" 读取文件: rdd=sc.textFile(path)
西西嘛呦
2020/08/26
5.1K0
matlab读取mnist数据集(c语言从文件中读取数据)
mnist database(手写字符识别) 的数据集下载地:http://yann.lecun.com/exdb/mnist/。
全栈程序员站长
2022/08/01
5K0
matlab读取mnist数据集(c语言从文件中读取数据)
ajax jQuery.getJSON 和fetch()加载json文件
ajax getJSON用例: $.getJSON('./' + mapCode + '.json', function (data) { if (data) { console.log(data); } }) fetch用法: fetch('./data/' + mapCode + '.json', { method: 'GET', mode: 'cors',// 允许发送跨域请求 creden
周星星9527
2022/04/01
1.3K0
shell脚本读取json文件内容
下载 jq插件。 Mac 可以直接 brew install jq { "menu": { "id": "file", "value": "File:", "popup": { "menuitem": { "value": "New", "onclick": "CreateNewDoc()" } } } } #!
Raindew
2022/03/24
5K0
iOS:本地json文件读取、存储
// 读取本地JSON文件 - (NSArray *)readLocalFileWithName:(NSDictionary *)name { // 获取文件路径 NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"json"]; // 将文件数据化 // NSString * path = [NSString stringWithFormat:@"/Users/admin
菜菜不吃蔡
2019/12/26
5.7K0
Flask读取json配置文件
import os import json from flask import Flask def create_app(): app = Flask('test') # 这里在虚拟环境中设置环境变量。 export RMON_CONFIG=xxx.json file = os.environ.get('RMON_CONFIG') content = '' if file: rest = {} with open(file) as
简单、
2018/07/17
2.6K0
点击加载更多

相似问题

加载JSON文件以读取和选择数据

32

尝试从JSON文件读取和使用数据

12

从JSON文件读取数据

12

从JSON文件读取和写入JSON文件

10

从json文件加载数据

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文