How to resovle __gcov_init undefined reference issue when link

微笑、不失礼 提交于 2019-11-30 01:18:28
Rajen

Try this approach:

Compile the code for which you want to generate the coverage with these options:

CFLAGS: -fprofile-arcs -ftest-coverage

LFLAGS: -lgcov --coverage

If this doesn't solve the problem, then please provide some information on the structure of your application, i.e. whether its single program or an application involving shared/static libraries etc.

Hope that helps!

Are you linking with -lgcov? If you are using a Makefile it would be of great help to have a look at it in order to help you.

I found I had to put the '-lgcov' to the right of the object being profiled instead of in Flags. Something like. gcc -pg -o myprog myprog.o -lgmp.a -lgcov

you have to provide LDFLAGS to resolve this issue.

LDFLAGS += " -lgcov --coverage"

I can't be sure which change finally did the trick for me but I think it was the -fprofile-generate flag. Using GNAT GPS I went to the Switches tab on the left and then selected the Ada Linker tab on the top. Then I enabled the checkbox for Code Coverage. Oh yeah I've found that on the Builder tab in that same area if you enable the Recompile if switches changed checkbox it can save a lot of teeth-gnashing. Probably slows things down for the pros but I found it helpful.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!