4
我在Snow Leopard上使用https://bugs.kde.org/show_bug.cgi?id=205241上的补丁安装了valgrind。但是,当我使用从C++代码编译的二进制文件运行它时,我被告知valgrind“无法执行二进制文件”。我应该用什么样的g ++标志来让我的程序和valgrind一起工作?在Snow Leopard上编译一个与valgrind配合使用的二进制文件
我在Snow Leopard上使用https://bugs.kde.org/show_bug.cgi?id=205241上的补丁安装了valgrind。但是,当我使用从C++代码编译的二进制文件运行它时,我被告知valgrind“无法执行二进制文件”。我应该用什么样的g ++标志来让我的程序和valgrind一起工作?在Snow Leopard上编译一个与valgrind配合使用的二进制文件
一定要使用-m32选项来生成32位可执行文件。编译器默认是64位(假设你有一台64位机器),但valgrind尚未正式支持Mac OS X上的64位可执行文件。可执行文件上的file
命令应报告“Mach-O可执行文件i386”。
谢谢!这正是我正在寻找的。但是,我无法编译它。我正在使用makefile来完成所有这些工作,并且在添加-m32选项后,我被告知“文件不是必需的体系结构”,用于所有.o文件。 – weicool 2009-10-28 21:19:57
编译和链接都需要-m32;这听起来像你可能已经添加它仅用于编译。另外请确保您使用的是所有库的32位版本。 – mark4o 2009-10-29 06:56:49