Gcov из памяти/несогласованная версия? - программирование
Подтвердить что ты не робот

Gcov из памяти/несогласованная версия?

Просто пытаясь запустить gcov и получив следующую ошибку:

$ gcov src/main.c -o build
build/main.gcno:version '404*', prefer '407*'

gcov: out of memory allocating 14819216480 bytes after a total of 135168 bytes

Я использую clang/profile_rt для генерации файлов, необходимых gcov, я предполагаю, что это может иметь какое-то отношение к этому. Однако он работает на моем другом компьютере, поэтому я предполагаю, что он может быть исправлен каким-то образом.

4b9b3361

Ответ 1

У меня была такая же проблема на моей машине.

Убедитесь, что ваши версии gcov и используемого вами компилятора совпадают.

У меня была эта точная проблема при компиляции с g++ - 4.7, и у меня была gcov 4.6.

На моей машине sudo apt-get install ggcov появилась последняя версия. Затем мне пришлось sudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcov сделать точку gcov в нужном месте.

Ответ 2

Моя проблема заключалась в том, что я обновил gcc и g++, чтобы я мог использовать новый компилятор, но забыл обновить версию gcov, означающую запуск "gcov" или "lcov", предыдущие версии компиляторов gcov.

Таким образом, в основном работающие g++ --version и gcov --version должны давать один и тот же номер версии, иначе все будет очень плохо.

Вот как я обновил версию своего компилятора, последняя строка - то, что я пропал без вести, чтобы заставить все это работать.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 90
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 90

Ответ 3

У меня была такая же проблема, и у меня были правильные версии. Решение в моем случае: удалите все *.gcda файлы из любого поддира, в котором вы компилируете. Мой make clean не покрывал их.