使用 -v 查看调用似乎在 Xcode 中不起作用

use -v to see invocation doesn't seem to work in Xcode

提问人:bhartsb 提问时间:11/27/2020 最后编辑:bhartsb 更新时间:11/27/2020 访问量:123

问:

我在 Xcode 中构建 C++ 程序时遇到错误: ld:1 个重复符号用于架构x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

将 -v 添加到“其他链接器标志”并没有给我更多信息。我已经清理和重建了。为了以防万一,我还尝试过传递 -v 来叮当声。

我继承了一个带有 .hpp 的 .cpp,其中包含大量包含,因此需要能够找到哪个标头包含有问题的方法。不知道如果没有链接器提供更多信息,我如何轻松找到有问题的方法。

关于查找重复符号以及解决 -v 不起作用的问题的最佳方法的想法?

我也试过传递--verbose。

C++ Xcode 链接器错误 ld

评论

0赞 molbdnilo 11/27/2020
如果在输出中略高于该行,则会显示“在 [...] 中重复符号'符号名称'”。确切的调用不会告诉你什么。
0赞 bhartsb 11/27/2020
不,它告诉哪些文件发生了重复项,但它没有告诉我任何关于它来自哪个 .hpp 或 .h 的信息。第三方 SDK 包含大量 .h 文件,因此尝试一次消除一个可能性并每次都重新构建将非常耗时。此外,我可能需要再次执行此操作,因此想知道为什么 -v 不起作用。
0赞 bhartsb 11/27/2020
@molbdnilo我知道问题出在哪里,但我只是不知道一种简单快速的方法,可以在来自第三方 SDK 的一长串 #includes 中找到违规内容。我继承了代码,现在需要清理它,以便我可以将该类与其他 .cpps 中的有问题的 .hpp 一起使用。
0赞 molbdnilo 11/27/2020
链接器调用不会告诉您有关符号来源的任何信息。如果你有名字,你不能搜索它吗?
0赞 bhartsb 11/27/2020
@molbdnilo我可以,但不方便。我想我将不得不求助于在终端中转到 SDK 的位置并运行 grep -r <冒犯的名称>。不是最有效的过程,尤其是在超过 1 个的情况下。

答: 暂无答案