Я работаю на Mac OSX, версия 10.8.5 (Mountain Lion?). У меня есть следующий простой код на C++.gmon.out не создается при компиляции с флагом -pg с g ++
main.cpp:
#include <iostream>
int main()
{
std::cout << "Hello world!"<<std::endl;
std::cout << "Goodbye world!"<<std::endl;
return 0;
}
Я пытаюсь дргоЕ работать на моем компьютере. Как manual предлагает, я ввожу следующие две строки в моем терминале:
g++ -g -pg main.cpp -o a.out
./a.out
Однако это не создает файл gmon.out, как предполагается. Когда я пытаюсь печатать «дргоЕ» в терминале, он говорит:
gprof: can't open: gmon.out (No such file or directory)
, который следует ожидать, поскольку gmon.out не существует ...
Любые идеи о том, что я делаю неправильно ?
EDIT: Некоторые другие вещи, которые могут помочь:
-Мой друг, который имеет аналогичный OS X версии (я могу попросить его, чтобы подтвердить), и точно такие же версии г ++ и дргоЕ, был в состоянии использовать gprof успешно, как я изложил.
использованием -Я старую версию г ++, но я прочитал в Интернете, что обновление до новой версии не помогло ...
-a.out отлично работает, он печатает «Привет, мир! " и «Прощай мир!». Я также пробовал это с более сложной программой на C++ с несколькими классами, и она по-прежнему имеет ту же проблему. Все компилируется и работает нормально, но не создается файл gmon.out.
Возможный дубликат http://stackoverflow.com/questions/1101545/problem-with-gprof-on-os-x-program-is-not-of-the-host-architecture, хотя один из ответов что 'gprof' теперь работает на OS X 10.6. Я не вижу, что вы делаете что-то неправильно, именно то, что вы делаете, работает так, как вы ожидали бы в моей Linux-системе. –
Да, у меня 10.8.5, я тоже видел этот вопрос, но я решил, что начну новый поток, потому что у меня есть более новая версия OS X, и этот поток никуда не денется. Существует также проблема «тест не из архитектуры хоста», с которой сталкивается другой человек, которого у меня нет. – nukeguy
Несмотря на то, что говорят люди, '-pg' не работает ни на одной из моих систем. 10.7-10.9.4. Я действительно считаю, что вы можете установить свою собственную версию gcc (отдельно от версии, предоставленной Apple), и профилирование будет работать там. – gautam