加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 与agvtool版本变量的$non_lazy_ptr链接错误?

发布时间:2020-12-14 19:58:13 所属栏目:百科 来源:网络整理
导读:我一直在使用agvtool作为我的一个iPhone应用程序的一般原则,并且最近找到了我希望能够检查版本变量的原因(以便我可以将帮助内容重新复制到Documents目录中,如果它是过时的). MyApp_vers.c中定义的变量MyAppVersionNumber在构建期间自动生成.它是在.o文件中生
我一直在使用agvtool作为我的一个iPhone应用程序的一般原则,并且最近找到了我希望能够检查版本变量的原因(以便我可以将帮助内容重新复制到Documents目录中,如果它是过时的). MyApp_vers.c中定义的变量MyAppVersionNumber在构建期间自动生成.它是在.o文件中生成的,并显示在链接应用程序本身的(以前的版本?)中.到目前为止,这似乎很好.

所以现在我已经在.m文件中声明了一个extern double MyAppVersionNumber,我需要使用它(后来尝试使用它,只是在NSLog语句中开始),我尝试为iPhone模拟器构建,得到一个链接错误:

"_MyAppVersionNumber",referenced from:
      _MyAppVersionNumber$non_lazy_ptr in HelpViewController.o
     (maybe you meant: _MyAppVersionNumber$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status

那么,我需要做些什么来让这个链接?

我用google搜索$non_lazy_ptr和agvtool,什么都没有,只是$non_lazy_ptr,它提供了一些东西,但主要适用于库,这不是,真的(是吗?).到目前为止,在我的挖掘中,我还没有出现一个关于agvtool的页面,它实际上讨论了使用变量的任何细节 – 我读过的那些只是随便说出来的一个extern变量,我已经完成了.

有谁熟悉这个,和/或能够提供任何帮助?

谢谢!

解决方法

由于agvtool更新了plist的CFBundleVersion值,我建议在运行时访问版本号:

NSDictionary *mainDictionary = [[NSBundle mainBundle] infoDictionary];
double myVersionNumber = [(NSString *)[infoDictionary objectForKey:@"CFBundleVersion"] doubleValue];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读