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

时间:2016-09-19 20:22:50

标签: android c++ g++ profiling gprof

我已经完成了项目的第一部分,我想通过使用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错误。

导致此行为的原因是什么?我正在使用的平台上有什么东西坏了吗?我能解决这个问题吗?怎么样?

1 个答案:

答案 0 :(得分:1)

很抱歉,我的回答很简短,但我正在使用手机。制作社区Wiki。

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

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