使用
-pg
选项编译我的 C++ 源代码以注入 gprof 配置文件检测代码时,编译失败并出现 undefined reference to _mcount
错误。
如果没有这个选项,一切都可以正常编译(并运行)。 我的情况有什么问题吗? (Solaris 10 SPARC 平台)
您是否两者都编译每个目标文件并使用“-pg”标志链接最终的可执行文件?
在某些情况下,您的构建系统可能会将
-nostdlib
添加到命令行,因此 gcc / g++ 不会将您的程序链接到 gmon
和 gcrt2.o
。
如果您有
undefined reference to 'mcount'
,您可以在 LDFLAGS 或 LDADD 上添加 -lgmon
以显式链接它。
同样,如果显示
undefined reference to'_monstartup'
,则需要添加path/to/gcrt2.o
(例如/bin/../lib/gcc/mingw32/4.3.3/../../../gcrt2.o) LDADD。