我在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在我的电脑上工作。正如manual建议的那样,我在我的终端中输入以下两行:
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
不在那里...
关于我做错了什么的任何想法?
编辑:其他一些可能有帮助的事情:
g++
和gprof
,能够成功地使用gprof
,如我所概述的那样。g++
,但我在网上看到更新到新版本没有帮助。a.out
工作得很好,打印出Hello world!
和Goodbye world!
。我还尝试使用更复杂的C ++程序和几个类,它仍然有同样的问题。一切都编译并正常运行,但没有生成gmon.out文件。您必须意识到OS X / MacOS默认情况下不在系统上提供GNU GCC。
请注意此命令的输出:
ls -la /usr/bin/g++ /usr/bin/clang++
这些可执行文件看起来相同(实际上!看起来它们不同,但文件大小不一样!)
据我所知,clang不支持gprof输出的生成。虽然令人困惑,但gcc
计划将会运行。
我建议尝试使用自制软件在OS X / MacOS上安装GCC。您确实需要注意它的安装方式等,以便您知道哪个命令对应于哪个编译器。