编译二进制文件以在 Snow Leopard 上使用 valgrind
我使用 https://bugs.kde.org/ 上的补丁在 Snow Leopard 上安装了 valgrind show_bug.cgi?id=205241 。然而,当我使用从 C++ 代码编译的二进制文件运行它时,我被告知 valgrind“无法执行二进制文件”。我应该设置哪些 g++ 标志才能使我的程序与 valgrind 一起工作?
I installed valgrind on Snow Leopard using the patch at https://bugs.kde.org/show_bug.cgi?id=205241 . However, when I run it with a binary I compiled from C++ code, I'm told that valgrind "cannot execute binary file". What g++ flags should I set to make my program work with valgrind?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请务必使用 -m32 选项生成 32 位可执行文件。编译器默认为 64 位(假设您有一台 64 位机器),但 valgrind 尚未正式支持 Mac OS X 上的 64 位可执行文件。可执行文件上的
file
命令应报告“ Mach-O 可执行文件 i386”。Be sure to use the -m32 option to generate a 32-bit executable. The compiler default is 64-bit (assuming you have a 64-bit machine), but valgrind does not yet officially support 64-bit executables on Mac OS X. The
file
command on your executable should report "Mach-O executable i386".