#macos #gcov
#macos #gcov
Вопрос:
У меня проблема с вызовом gcov, он продолжает возвращаться — такого файла или каталога нет.
Когда я вызываю
localhost:R-3.0.1 romantsegelskyi$ gcov src/main/eval.c eval.c: No such file or directory
Однако сам файл и информация, необходимая для gcov, существуют.
localhost:R-3.0.1 romantsegelskyi$ ls src/main/eval* src/main/eval.c src/main/eval.d src/main/eval.gcda src/main/eval.gcno src/main/eval.o
Я пытался указать —object-directory, но по-прежнему безуспешно
localhost:R-3.0.1 romantsegelskyi$ gcov src/main/eval.c --object-directory=./src/main eval.c: No such file or directory
Самое странное, что это имеет место только в OSX, в Linux все работает нормально, как и предполагалось. Есть идеи?
Комментарии:
1. Вы уверены, что имя файла (или команда) не содержит каких-либо странных / невидимых символов? Попробуйте
ls src/main/eval.c
(из того же контекста, что иgcov
команда).2. Кажется, работает нормально, localhost:R-3.0.1 романцегельский$ ls src/main/eval.c src/main/eval.c
Ответ №1:
- То же поведение!! И что еще более странно: я получаю результат (файл .gcov), следуя этому сообщению !! Возможно, у вас тоже есть результат?
- В проблеме есть два аспекта :
- в руководстве gcov сказано, что gcov должен выполняться по умолчанию в каталоге, в котором находятся объектный файл и файлы данных gcov. Первое и самое простое рабочее решение: перейдите в соответствующий каталог и выполните gcov cd src/main; gcov eval.c
- почему аргумент —object-directory = … кажется, не работает? Поскольку ожидаемым значением является имя каталога, а в приведенном примере это имя файла. Поэтому вам следует написать —object-directory=src/ main (это тоже работает) или —object-file=src/main/eval.c (согласно документу. Я такого не пробовал !)