尝试使用 -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' 的引用”的主要内容,如果未能解决你的问题,请参考以下文章
Angular2:尝试使用 @ViewChild 注释将焦点设置到输入字段时出现未定义的错误