gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:36:49 24 4
gpt4 key购买 nike

我一直在一般原则上为我的一个 iPhone 应用程序使用 agvtool,并且最近找到了一个我希望能够检查版本变量的原因(以便我可以重新-如果帮助内容已过期,请将其复制到文档目录中)。 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

那么,我需要做些什么不同的事情才能使其链接起来?

我在谷歌上搜索了 $non_lazy_ptr 和 agvtool,但什么也没得到,而只是 $non_lazy_ptr,它提供了一些东西,但主要应用于库,这不是,真的(是吗?)。到目前为止,在我的挖掘中,我还没有打开一个关于 agvtool 的页面,它实际上详细讨论了如何使用变量——我读过的那些只是随意地说声明一个 extern 变量,我已经这样做了.

任何人都熟悉这一点,和/或能够提供任何帮助吗?

谢谢!

最佳答案

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

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

关于iphone - $non_lazy_ptr 与 agvtool 版本变量的链接错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com