绑定ld输入时手机qq弹出绑定手机号窗口说民输入ld格式不对…怎么办?

2175人阅读
7a92l3PJGnvaDHxidQbLNa+HgZlPfW4n/AsNVwuPzj8RAjoyZZE
为什么明明指定了依赖的库,却还总是链接失败???
潜规则: LD对依赖库的输入顺序敏感.
LD在链接生成目标文件时, 会从左到有扫描输入的依赖库, 但是, 当依赖库之间也有依赖关系时,必须将”依赖别人的库”放在 “被别人依赖的库”的前面.
否则,会链接失败! 这点和vc++很不一样哦.
举例: 有三个库a.a, b.a, c.a; 其中b.a依赖了a.a和c.a, a.a和c.a相互不依赖, 而target依赖了a.a和b.a
g++ -o target target.cpp a.a b.a c.a // 成功,
g++ -o target target.cpp a.a c.a b.a // 失败, 因为c.a应该在b.a后面
为什么b.a依赖了a.a, 而a.a放在b.a的前面却能成功?
因为target也依赖了a.a, 在链接b.a时,a.a的符号已经被链进来了.
ld_sequence.cpp
程序库为开发者带来了方便,但同时也是某些混乱的根源。我们来看看链接器(Unix平台)是如何解析(resolve)对程序库的引用的(参考[1],p556)。
在符号解析(symbol resolution)阶段,链接器按照所有目标文件和库文件出现在命令行中的顺序从左至右依次扫描它们,在此期间它要维护若干个集合:(1)集合E是将被合并到一起组成可执行文件的所有目标文件集合;(2)集合D是所有之前已被加入E的目标文件定义的符号集合;(3)集合U是未解析符号(unresolved symbols,即那些被E中目标文件引用过但在D中还不存在的符号)的集合。一开始,E、D、U都是空的。
(1): 对命令行中的每一个输入文件f,链接器确定它是目标文件还是库文件,如果它是目标文件,就把f加入到E,并把f中未解析的符号和已定义的符号分别加入到U、D集合中,然后处理下一个输入文件。
(2): 如果f是一个库文件,链接器会尝试把U中的所有未解析符号与f中各目标模块定义的符号进行匹配。如果某个目标模块m定义了一个U中的未解析符号,那么就把m加入到E中,并把m中未解析的符号和已定义的符号分别加入到U、D集合中。不断地对f中的所有目标模块重复这个过程直至到达一个不动点(fixed point),此时U和D不再变化。而那些未加入到E中的f里的目标模块就被简单地丢弃,链接器继续处理下一输入文件。
(3): 当扫描完所有输入文件时如果U非空或者有同名的符号被多次加入D,链接器报告错误信息并退出。否则,它把E中的所有目标文件合并在一起生成可执行文件。
上述规则针对的是Unix平台链接器,而VC(至少VC6.0)linker则有相当的不同: 它首先依次处理命令行中出现的所有目标文件,然后依照顺序不停地扫描所有的库文件,直至U为空或者某遍(从头到尾依次把所有的库文件扫描完称为一遍)扫描过程中U、D无任何变化时结束扫描,此刻再根据U是否为空以及是否有同名符号重复加入D来决定是出错退出还是生成可执行文件。很明显Unix链接器对输入文件在命令行中出现的顺序十分敏感,而VC的算法则可最大限度地减少文件顺序对链接的影响。作者不清楚Unix下新的开发工具是否已经改进了相应的做法,欢迎有实践经验的朋友补充这方面的信息(补充于日:
经试验,使用gcc 3.2.3的MinGW 3.1.0的链接器表现与参考[1]描述的一致)。
根据上文的ldd的符号解析规则, 我们推导出如下实用规则:
不要在一个文件cpp里面定义多个无关的类, 这样做的好处:
由于符号链接是以.o为最小单位的(而不是.a), 如果类都存放在不同的cpp里面, 那么可以不会链接一些无关的.o, 减少文件大小. 有时候, 还能避免编译失败(因为,一旦链进来一个.o,那么须保证该.o里面的所有符号都必须有定义).
在实施朋友ID密钥项目时, 发现一些没有用到朋友ID密钥项目的工程也必须链接朋友ID密钥的库才能编译通过. 经排查是因为这些项目用到了base_wapper.a(该.a里面仅包含了一个base_wapper.o), 而base_wapper.cpp里面定义了很多个类,其中有一个朋友ID转换的包装类, 这导致, 所有依赖base_wapper.a的项目必须能解析base_wapper.cpp中出现的所有符号, 所以杯具. 解决方法就是把base_wapper.cpp 拆分为base_wapper.cpp和xy_convert.cpp.
虽然最终还是打包为一个base_wapper.a(base_wapper.o+xy_convert.o), 但对于使用方, 由于没有用到xy_convert.o, 不用链接朋友ID密钥库也不会报错.
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场愤怒的小鸟上输入苹果ld老说错误可我又没有输错!_百度知道
愤怒的小鸟上输入苹果ld老说错误可我又没有输错!
我有更好的答案
.114.114!望采纳.114,要是还不 行……只能说明这个网络不太好,再不行就去网络设置里改VPN 为114注销重登录……然后在正确输入密 码!
重新下载试试看
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁捡了一个苹果6刷机完了,开机后要ld密码,这可怎么办,越狱有用吗?-中国学网-中国IT综合门户网站
> 捡了一个苹果6刷机完了,开机后要ld密码,这可怎么办,越狱有用吗?
捡了一个苹果6刷机完了,开机后要ld密码,这可怎么办,越狱有用吗?
转载 编辑:李强
为了帮助网友解决“捡了一个苹果6刷机完了,开机后要ld密码”相关的问题,中国学网通过互联网对“捡了一个苹果6刷机完了,开机后要ld密码”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:捡了一个苹果6刷机完了,开机后要ld密码,这可怎么办,越狱有用吗?,具体解决方案如下:解决方案1:去苹果官网找回密码,然后重设,就能进了原来你的密码你还记得吗,如果你的id你还记得解决方案2:手机是捡的wo m解决方案3:我不知道密码解决方案4:那只能出几百让手机维修店的老师傅拆机换个芯片就好了解决方案5:换芯片,是不是就不是苹果了解决方案6:还是的,这个没有关系的,很小的一个芯片,他只有记忆密码的功能,放心吧解决方案7:望采纳谢谢解决方案8:真的假的真的便宜解决方案9:就好比电脑上了锁密码,把电脑里的一个记忆条拿出一下就好了。解决方案10:芯片换了,失主还可以找到吗解决方案11:能找,手机序列码还是一样的,除了6p,5s以下的不会去找回的,不然很麻烦的。解决方案12:现在一只5s只要2500就能拿到了解决方案13:4s1500解决方案14:苹果是除了主板,别的都不值钱的解决方案15:我手机可以买多少钱解决方案16:亲采纳下谢谢了解决方案17:3成新解决方案18:3000解决方案19:卖给手机店有2000就很不错了解决方案20:亲解决方案21:是9成新解决方案22:这么少解决方案23:其实道德上您应该上交的解决方案24:好吧解决方案25:他也没给我打电话啊解决方案26:还给机主您还能多交个朋友解决方案27:就发个短信解决方案28:你可以给他打的嘛解决方案29:我锁都解不开怎么打电话解决方案30:sim卡总有的吧解决方案31:等电话哎解决方案32:通讯录或许卡上有存解决方案33:那更好了解决方案34:太给力了,你的回答完美的解决了我的问题!通过对数据库的索引,我们还为您准备了:答:首先,您老人家太幸运了;其次,作为一个标准的现代公民,咱挂个失物招领吧……PS:苹果产品只有第一次开机时需要输入Apple ID,此时如果没有可以按向导申请——系统更新后输入的是解锁密码,与安卓产品类似===========================================答:其实我了解一个不错的噢→pp︿199┷212╣88┒┒≡ぺ挺速度给我搞定的。 首先要清楚的是:Apple ID的格式一定要是邮箱的形式,有@隔开。 打开设置---store(或者“iTunes Store和App Store)----点击注销,把已有的Apple ID注销掉,然后点击创建新的Apple...===========================================答:我就是这样搞回的pp╣199┶212_88╒—-‘挺快处理好的 你可以打开你自己的电脑里面iTunes,下载iCloud控制面板,定位你的手机… 或者输入你的iTunes账户也可以定位的… 如果这些都不行的话,你可以去淘宝 里面有很多专家帮忙找iPhone的,如果你对手机不...===========================================答:只好通过非正常手段来处理→「282.97〖555┕《﹥┳Ǫ 以前从那处理过 通常每一位捡到手机的人都会习惯性的将手机关机,等到感觉没有人再会打进电话的时候再来对手机进行研究。此时,与其不停的尝试着拨打自己所丢失的iphone系列手机 ,和朋友亲...===========================================答:没有办法了 只能当砖头用了 等待一段时间看又不由大神 能够破解4s的芯片破解了就能绕过了 ===========================================答:其实很难,不是神人几乎不会搞定的,推一个你吧→Qp25﹄331}818 ╖╝现在苹果推出了打开查找iphone不管是刷机还是恢复出厂值,只要你输入了苹果账号打开了查找 iphone 在激活的时候都要输入刷机或者恢复之前的那个账号才可以正常激活。导致了好多用...===========================================答:手气真壮,我怎么捡不到……===========================================答:如果不是超级牛的人恐怕么法处理,推一个你吧→Qp~167_╓﹏ˉˉ苹果ios设备都必须使用这个id 用它来下 载应用程序 使用某些功能。因为苹果是 封闭的系统 所以有这么一个东西。安卓 就没有的。这个东西要绑定你的ios设备 才能用的。 你最好自...===========================================答:我这里有一位很厉害的 抠是 2_5┌96前面6+6╉6-8 很信用。希望可以帮到大家=========================================== 捡到六?你真的不准备还给人家吗?毕竟蛮贵的,机主设置了icloud锁,必须用他的这个账号解开,或者你可以去市面上的手机店看会不会有高手会破解,一般是可以破解的=========================================== 苹果安全系数还是比较高的! 有密码的更不用说了!=========================================== 我写多了说我里面在非法词汇!我用拼音说。把Ji壳Cai了。电ban拿了。放在Jia里半Nian.等电quan部放Kong.应该是可以的。===========================================手机已经被锁定了,除了原机主无人能用。还有一种可能就是升级iOS7后初始设置要你输入ID那是可以跳过的。从你说出的信息看可能是第一种。===========================================去街上看哪有这写苹果刷机什么的,去刷一下就好了,花不了多少钱....===========================================寡人建议你:1刷开手机密码,无论花多少钱2开机打开名片夹联系到失主3归还并要刷开手机双倍价钱。这样做他如果不同意给你钱,那手机就是你的了;如果同意,楼主也没白忙活一...===========================================我之前也是捡到了一部苹果5手机将对方的卡拔出来,安装上自己的手机卡 却要苹果原ID和密码。只好拿到手机店破解ID,手机店竟然解不了,要我还给失主。好不容易捡到了苹果...===========================================还需这方面的高手才能给你搞定,我认识一个不错的人,我苹果的ID和密码就是他帮我破解的,不管多么复杂的情况他都能很快搞定。===========================================ID要不要都无所谓的 刷机就可以像刚刚买来的时候那样激活的 ID就不要了 注册麻烦 在你自己电脑上下载pp助手 还是快用助手就可以下载软件进iPhone里了啊 下载软件完在助...===========================================这个是需要一定技术的,楼主!我认识一个人,他就会弄这方面的,你可以找他问问的,人非常专业的,应该能帮到你的,强烈推荐你去找他帮忙===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助iOS 问题:急求大神解答~!!!!!!!!!!
我的项目一开始是用parse做第三方登录时候出现了静态库冲突的问题,后来到往上查答案,说是加入facebookSDK.framework就可以解决,可是现在我加进去了,又报错
ld: framework not found FacebookSDK
clang: error: linker command failed with exit code 1 (use -v to see invocation)
说是facebookSDK找不到!!!我看了一下网上说是把第三方库的.m文件加到compile里面就行了,可是这个库根本没有.m文件啊..求大神支援解决的办法!!!急!!!谢谢了!!!! -
急求大神解答~!!!!!!!!!!
我的项目一开始是用parse做第三方登录时候出现了静态库冲突的问题,后来到往上查答案,说是加入facebookSDK.framework就可以解决,可是现在我加进去了,又报错
ld: framework not found FacebookSDK
clang: error: linker command failed with exit code 1 (use -v to see invocation)
说是facebookSDK找不到!!!我看了一下网上说是把第三方库的.m文件加到compile里面就行了,可是这个库根本没有.m文件啊..求大神支援解决的办法!!!急!!!谢谢了!!!!
共有 3 个回答
link 问题,一般就是没有导入头文件导致的
登录后方可回复
build setting里 build activity architecture only 设成no试试
登录后方可回复
FacebookSDK.framework.你这文件在哪里找的呀,我下的都没这个文件。。
登录后方可回复
登录后方可回答
耗时 0.0726 秒

我要回帖

更多关于 微信绑定不了qq怎么办 的文章

 

随机推荐