我有一个 C 库,其代码位于 /repos1/clib 中。我使用最新的 iOS sdk 从命令行构建它以创建 clib.a(包括模拟器的调试构建),我将其复制到 /repos2/proj 中的 iOS 项目中。
我已经使用这个设置好几年了。旧的 C 库偶尔可能需要一些调试,我很高兴 Xcode 只需进入项目外部(repos1 内)的库代码而无需进行任何设置 - 它就可以工作。但这直到几个 Xcode 版本之前。我不确定它是什么时候改变的——也许是他们从 gcc 转移到 llvm 的时候?- 因为我很少需要调试 C 代码,但有一段时间我只有在尝试从 iOS 项目调试 C 库时才会被拆解(至少包括对 C 文件名和行号的引用)。有几次我需要调试它非常不方便(我创建了一个包含 C 代码的临时项目)。
那么,知道为什么它以前有效而现在无效吗?我应该去哪里看?可能是我构建 C 库的方式,也许我使用的 gcc 中有一个标志在 llvm 中没有等效项(如果相关,我可以找到并发布我正在使用的旧构建命令)?是 Xcode 中的问题吗?有办法告诉它在哪里寻找源代码?
谢谢!
编辑:为了清楚起见,我可以将 C 库添加为 Xcode 中的源代码或子项目,但是由于超出范围的原因,这对这个特定项目没有帮助。那么,它可以像以前的 Xcode 版本一样工作吗?如果没有,知道为什么不这样做仍然很有趣。