如何在 Snow Leopard 上编译 Valgrind?
7 回答
假设你已经安装了 XCode 工具和一个 SVN 客户端,就可以了。
转到您保存内容的某个目录。查看 valgrind 资源
svn co svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_5_0 valgrind
下载 Greg Parker 的 10.6 补丁
curl http://bugsfiles.kde.org/attachment.cgi?id=36999 > 10.6.patch
mv 10.6.patch ./valgrind
应用补丁
cd valgrind
patch -p0 < 10.6.patch
编译 valgrind
./autogen.sh
./configure
make
安装它
sudo make install
运行
valgrind --leak-check=full --show-reachable=yes /tmp/a.out
仅供参考,Valgrind 3.6(2010 年 10 月 21 日发布)正式支持开箱即用的 Snow Leopard。
除了diciu的(几乎)完美答案。用于编译 64 位版本的 valgrind(需要 64 位可执行文件,也就是 OS 10.6 中的标准)。您将需要像这样运行配置:./configure --enable-only64bit
使用 --enable-only64bit 配置标志避免了将 host_cpu="x86_64" 破解到配置脚本中(使用发布的补丁 diciu)
diciu 的答案对于 32 位构建完美无缺,但我无法通过调整这些指令来获得 64 位构建。
不过,找到了一些其他工作说明来获得64 位版本的 valgrind。
(此处复制,稍作改编,因为在 os x 上默认未安装 wget)
svn co -r 11104 svn://svn.valgrind.org/valgrind/trunk valgrind
cd valgrind
curl http://bugsfiles.kde.org/attachment.cgi?id=40091 -o snow-leopard.patch
curl http://bugsfiles.kde.org/attachment.cgi?id=40900 -o arc4random.patch
curl http://bugsfiles.kde.org/attachment.cgi?id=42530 -o sidt.patch
curl http://bugsfiles.kde.org/attachment.cgi?id=42892 -o signal.patch
patch -p0 < snow-leopard.patch
patch -p0 < arc4random.patch
patch -p1 < signal.patch
cd VEX; patch -p0 < ../sidt.patch ; cd ..
touch darwin10-drd.supp
touch darwin10.supp
./autogen.sh || autoreconf -fvi
./configure --prefix=`pwd`/inst64 --build=amd64-darwin
make -j 8 && make install
编辑:作为对评论的回应,让 32 位和 64 位同时执行以下命令:(请注意,我不需要 32 位 valgrind,所以我没有尝试这个,但它应该可以工作)
make clean
./configure --prefix=`pwd`/inst32
make -j 8 && make install
之后两者都将位于 inst32/ 和 inst64/ 中。
酿造安装 valgrind
你不能。尚不支持。