尝试使用 -pg [Termux] 时出现“未定义的对 `mcount' 的引用”

Posted

技术标签:

【中文标题】尝试使用 -pg [Termux] 时出现“未定义的对 `mcount\' 的引用”【英文标题】:"Undefined reference to `mcount'" when trying to use -pg [Termux]尝试使用 -pg [Termux] 时出现“未定义的对 `mcount' 的引用” 【发布时间】:2016-09-19 20:22:50 【问题描述】:

我已经完成了项目的第一部分,我想通过使用gprof 对其进行分析来了解它的性能好坏。我正在使用名为 Termux 的 Linux 模拟器在 android 上工作,并且我使用 g++ 作为编译器。

一切都编译没有错误甚至警告,二进制运行完美。

所以我决定将-pg 标志放在我的makefile 中的其他标志中,(意味着编译和链接都使用-pg 执行)并尝试重新编译所有内容。但是有些事情似乎无法正常工作:在编译期间,一切正常。但是在链接时,我收到一个argument unused during compilation: '-pg' 警告,然后是很多undefined reference to 'mcount'(它甚至没有显示所有这些,过了一会儿它说more undefined references to 'mcount' follows)错误,最后是linker command failed with exit code 1 错误。

是什么导致了这种行为?我正在使用的平台上是否有损坏/丢失的东西?我可以解决这个问题吗?怎么样?

【问题讨论】:

你也必须链接-pg:sourceware.org/binutils/docs/gprof/Compiling.html @Jean-François Fabre 我已经在做。在链接过程中一切都很好,当我将它们全部组合成二进制文件时,就会出现问题。 如果我的意思是我会把它标记为***.com/questions/4603298/…的副本 @Jean-François Fabre 即使我说过并重复说我正在使用-pg 编译所有内容? 【参考方案1】:

很抱歉简短的回答,但我在移动。制作社区 wiki。

在 Termux 中,g++ 是指向clang 的符号链接。 -pg 是 gnu 功能,因此在使用 clang 链接时不起作用。

您可以使用适合 clang 的技术进行分析,或安装真正的 g++。一个参考是https://android.stackexchange.com/questions/182130/use-gcc-compiler-in-termux,但也有“谷歌性能工具”用于在某处进行分析。

【讨论】:

以上是关于尝试使用 -pg [Termux] 时出现“未定义的对 `mcount' 的引用”的主要内容,如果未能解决你的问题,请参考以下文章

尝试编译opengl项目时出现c ++未定义的引用错误

尝试在 React 中更改状态时出现未定义的错误

Angular2:尝试使用 @ViewChild 注释将焦点设置到输入字段时出现未定义的错误

使用通用登录视图时出现“名称'django'未定义”错误?

尝试更新firestore中的数组时出现“TypeError:无法读取未定义的属性'arrayUnion'”

使用打字稿时出现“未捕获的 ReferenceError:未定义角度”