Xcode 中 gcov 的链接器错误

发布于 2024-09-17 23:06:49 字数 426 浏览 9 评论 0原文

将 gcov 添加到 Xcode 项目时,出现链接器错误:未找到符号 __gcov_init 和 __gcov_merge_add。

这是在 Mac OS X 10.5 和 Xcode 3.1.4 上,它是一个 Quartz Composer 插件项目,我正在尝试将 gcov 添加到 OCUnit 测试用例目标。基础 SDK 和部署目标均设置为 Mac OS X 10.5。 GCC 版本设置为 4.0。

我能够使用 gcov 和 OCUnit 成功创建另一个(非常简单)Quartz Composer 插件项目。我可能遗漏了一些东西,但是两个项目之间的构建设置在任何可能影响 gcov 链接的地方似乎都是相同的。 (我看到的唯一区别是 C 语言方言、Interface Builder 编译器不起作用的项目中的一些额外设置,以及运行 Clang 的用户定义设置。)

任何建议将不胜感激。

When adding gcov to an Xcode project, I'm getting linker errors: the symbols __gcov_init and __gcov_merge_add are not found.

This is on Mac OS X 10.5 and Xcode 3.1.4, it's a Quartz Composer Plugin project and I'm trying to add gcov to the OCUnit test cases target. The Base SDK and Deployment Target are both set to Mac OS X 10.5. The GCC version is set to 4.0.

I was able to successfully create another (very simple) Quartz Composer Plugin project with gcov and OCUnit. I may be missing something but the build settings between the two projects seemed identical in anything that could possibly affect gcov linkage. (The only differences I see are the C Language Dialect, some extra settings in the not-working project for Interface Builder Compiler, and a user-defined setting that runs Clang.)

Any suggestions would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花细雨 2024-09-24 23:06:49

Shaggy Frog 的想法是正确的——-lgcov 标志没有出现在输出中。我的项目有一个单元测试目标以及有覆盖和没有覆盖的单独配置。单元测试目标和覆盖配置中的其他链接器标志设置有所不同,仅在其中之一中设置了 -lgcov。 Xcode 没有添加所有标志,而是用另一组标志覆盖另一组标志。

Shaggy Frog had the right idea-- the -lgcov flag was not appearing in the output. My project had a unit testing target and separate configurations for with and without coverage. The Other Linker Flags setting was different in the unit testing target and the coverage configuration, with -lgcov being set in only one of those. Instead of adding in all of the flags, Xcode was overriding one set of flags with the other.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文