【问题标题】:Compiling a binary to work with valgrind on Snow Leopard编译二进制文件以在 Snow Leopard 上使用 valgrind
【发布时间】:2009-10-26 21:34:30
【问题描述】:

我使用 https://bugs.kde.org/show_bug.cgi?id=205241 的补丁在 Snow Leopard 上安装了 valgrind。但是,当我使用从 C++ 代码编译的二进制文件运行它时,我被告知 valgrind“无法执行二进制文件”。我应该设置哪些 g++ 标志才能使我的程序与 valgrind 一起工作?

【问题讨论】:

    标签: g++ osx-snow-leopard valgrind


    【解决方案1】:

    确保使用 -m32 选项生成 32 位可执行文件。编译器默认为 64 位(假设您有 64 位机器),但 valgrind 尚未正式支持 Mac OS X 上的 64 位可执行文件。您的可执行文件上的file 命令应报告“Mach-O 可执行 i386 ”。

    【讨论】:

    • 谢谢!这正是我想要的。但是,我无法编译它。我正在使用 makefile 来完成这一切,在添加 -m32 选项后,我被告知所有 .o 文件的“文件不是必需的架构”。
    • 编译和链接都需要-m32;听起来您可能已添加它仅用于编译。还要确保您拥有正在使用的所有库的 32 位版本。
    猜你喜欢
    • 2011-01-18
    • 2010-11-29
    • 2010-12-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多