首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >agvtool版本变量的$non_lazy_ptr链接错误?

agvtool版本变量的$non_lazy_ptr链接错误?
EN

Stack Overflow用户
提问于 2010-07-31 10:30:42
回答 1查看 745关注 0票数 8

我一直在为我的一个iPhone应用程序使用agvtool,并且最近找到了我想要能够检查版本变量的原因(这样我就可以将帮助内容重新复制到Documents目录中,如果它过期了)。MyApp_vers.c中定义的变量MyAppVersionNumber是在构建过程中自动生成的。它在.o文件中生成,并显示在(上一版本?)链接的应用程序本身。到目前为止,看起来还不错。

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

代码语言:javascript
复制
  "_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

那么,我需要做什么不同的事情,才能让这个链接起来呢?

我在谷歌上搜索了$non_lazy_ptr和agvtool,但一无所获,只搜索到了$non_lazy_ptr,它提供了一些东西,但主要应用于库,而这并不是真的(是吗?)。到目前为止,在我的挖掘中,我还没有打开一个关于agvtool的页面,它实际上讨论了使用变量的任何细节--我读到的那些只是随意地声明了一个外部变量,我已经做到了。

有没有人熟悉这一点,并且/或者能够提供任何帮助?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-03-15 14:16:27

由于agvtool会更新plist的CFBundleVersion值,因此我建议在运行时使用以下命令访问版本号:

代码语言:javascript
复制
NSDictionary *mainDictionary = [[NSBundle mainBundle] infoDictionary];
double myVersionNumber = [(NSString *)[infoDictionary objectForKey:@"CFBundleVersion"] doubleValue];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3376525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档