gmon.out не создается, когда я компилирую с флагом -pg с g ++

Я работаю на Mac OSX, версия 10.8.5 (Mountain Lion). У меня есть следующий простой код C ++.

main.cpp:

#include <iostream>

int main ()
{
std::cout << "Hello world!"<<std::endl;
std::cout << "Goodbye world!"<<std::endl;
return 0;
}

Я пытаюсь заставить gprof работать на моем компьютере. Как руководство предлагает, я ввожу следующие две строки в мой терминал:

g++ -g -pg main.cpp -o a.out
./a.out

Однако это не генерирует gmon.out файл, как и положено. Когда я пытаюсь набрать gprof в терминале написано:

gprof: can't open: gmon.out (No such file or directory)

чего и следовало ожидать с gmon.out не там …

Есть идеи, что я делаю не так?

РЕДАКТИРОВАТЬ: Некоторые другие вещи, которые могут помочь:

  • Мой друг, у которого есть аналогичная версия OS X (я могу попросить его позже подтвердить) и точно такие же версии g++ а также gprof, был способен
    использование gprof успешно, как я наметил.

  • Я использую старую версию g++ но я читал в Интернете, что обновление до более новой версии не помогло.

  • a.out работает отлично, распечатывает Hello world! а также Goodbye world!, Я также попробовал это с более сложной программой C ++ с
    несколько классов, и это все еще имеет ту же проблему. Все
    компилируется и работает нормально, но файл gmon.out не создается.

13

Решение

Вы должны понимать, что OS X / MacOS не предоставляет GNU GCC в системе по умолчанию.

Обратите внимание на вывод этой команды:

ls -la /usr/bin/g++ /usr/bin/clang++

Эти исполняемые файлы выглядят одинаково. (На самом деле! Похоже, они разные, но как-то размер файла идентичен!)

Насколько я могу судить, clang не поддерживает создание вывода gprof. Как бы странно это ни было, gcc Программа будет работать Clang.

Я бы порекомендовал попробовать использовать homebrew для установки GCC на OS X / MacOS. Вы хотите быть осторожными с тем, как он устанавливается и т. Д., Чтобы вы знали, какая команда соответствует какому компилятору.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]