окончательная ссылка gcov не удалась - PullRequest
3 голосов
/ 05 мая 2011

При компиляции моего проекта с поддержкой gcov я сталкиваюсь с ошибкой ниже

Ниже приведена информация о флагах, которую я имею при компиляции

флаги компилятора:

CXXFLAGS="-Wno-deprecated -g -ggdb -fprofile-arcs -ftest-coverage -fPIC"

Параметры компоновщика:

LINK_CMD="gcc -fprofile-arcs -fPIC"

Ниже приводится информация о версии:

gcc версия:

gcc версия 4.1.2 20080704 (Red Hat 4.1.2-44)

версия gcov:

gcov (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)

ошибка:

скрытый символ `__gcov_init 'в /usr/lib/gcc/x86_64-redhat-linux/4.1.2/libgcov.a(_gcov.o) используется DSO / usr / bin / ld: окончательная ссылка не удалась: непредставительный раздел на выходе collect2: ld вернул 1 статус выхода

Не могли бы вы помочь мне избежать этой проблемы?

1 Ответ

5 голосов
/ 13 февраля 2012

Я смог решить эту проблему в своем собственном коде, выполнив следующие действия:

  1. Очистить (удалить все мои .o и lib файлы).
  2. Убедитесь, что каждый исходный файл имеет правильные параметры (-fprofile-arcs -ftest-покрытие).
  3. Убедитесь, что в каждой общей библиотеке исходные файлы скомпилированы в спецификацию -lgcov
  4. Убедитесь, что я связал исполняемый файл с -lgcov.

См. Также этот ответ и это сообщение в блоге .

...