2012-11-16 116 views
21

我试图在Snow Leopard的Mac上安装Valgrind,但遇到了错误。这是我在终端输入的内容。在安装Valgrind时失败

$ curl -O http://valgrind.org/downloads/valgrind-3.8.1.tar.bz2 
$ md5sum valgrind-3.8.1.tar.bz2 
$ tar -xjvf valgrind-3.8.1.tar.bz2 
$ cd valgrind-3.8.1 
$ ./configure 
$ make 

这是我得到的错误。

Making all in coregrind 
make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'. Stop. 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 

我怎样才能纠正这一错误?

+0

您是否安装了Xcode? –

+0

我没有Xcode,因为Snow Leopard特别困难。 –

+0

请参阅下面的答案。我相信它会解决你的问题。 – Volte

回答

4

显然,要在Macintosh上编译,valgrind需要文件/usr/include/mach/mach_vm.defs存在。尽管我没有具体的参考mach_vm.defs作为XCode的一部分,但似乎在Xcode的时候安装了/usr/include/mach的大部分常用内容。

如果由于某种原因无法在机器上安装XCode,可以从this part of apple's open source website获取该特定目录的大部分源文件。

+0

这是问题所在。不幸的是,我遇到了另一个问题。如果我解决不了,我会发布一个新问题。 –

+0

有类似的问题。这个答案有所帮助,但是在这个页面上的一些评论也是如此。 http://calvinx.com/2014/05/04/valgrind-on-mac-os-x-10-9-mavericks/ xcode的安装位置为/ usr/include/mach = /Applications/Xcode.app/Contents /Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/包括 –

+1

此问题再次出现,因为在新的El Capitan OS中,甚至不能sudo可以创建目录'/ usr/include' –

80

确保安装命令行工具。

xcode-select --install 
+6

简单修复,应该接受 –

+4

正确,这是Valgrind开发人员推荐的修复程序。上面的替代方法很脆弱,不能保证与未来的Xcode版本兼容。 –

+4

这对我来说非常合适。这应该是被接受的答案。 – CGTheLegend

4

正确编译valgrind的最好方法是使用上面答案中提到的'xcode-select --install'命令。 然而,由于次优的黑客,你可以得到它通过下载以下文件从OSX /mach source编译到/ usr/include目录/马赫(创建目录):

mach_vm.defs  
task.defs 
thread_act.defs 
vm_map.defs 

这是一个略显肮脏的黑客,但它应该如果你真的不想下载/安装大型的Xcode原始文件,请继续阅读。