【问题标题】:How to build and install Valgrind on Mac?如何在 Mac 上构建和安装 Valgrind?
【发布时间】:2011-12-27 11:28:57
【问题描述】:

我在 Mac OS X 上使用代码块 10.05

我下载了 Valgrind,并提取了一个文件夹。我从那里完全迷失了,不知道如何构建它。

我不知道任何终端/控制台命令,并且通常是编程新手,所以我不知道如何“构建”或“编译”它。我只有一个名为 Valgrind 的文件夹,里面有一堆随机文件。

有人可以告诉我如何进行吗?我已经检查了网站/文档,但它并没有真正给我安装说明,只是使用说明。

谢谢

PS:我知道我已经发布了这个问题,但是之前的问题因为太含糊而被关闭了。我转发了这篇文章并提供了更多信息。

PSS:我基本上要问的是,在我从网站下载 Valgrind 并解压缩文件后,我该怎么做才能安装它?

【问题讨论】:

  • @tjm 抱歉,我删除了“喊叫”。我不太明白你说的细节是什么意思。我要问的是——我已经下载了 Valgrind,接下来我该怎么做? Mankarse 我不知道,谢谢你的信息:)
  • 官方文档中有关于如何安装 Valgrind 的信息。 link
  • 查看解压时从存档中取出的目录中的README 文件。该文件包含有关如何配置和构建的说明,请尝试一下。
  • 恕我直言,在不了解bash shell 或不知道如何使用sudo 的情况下询问如何构建和安装valgrind 就像在不学习使用a 的情况下尝试编程一样文本编辑器。您跳过了太多步骤。
  • 与开发人员使用的工具相关的问题都在此处讨论,人们确实经常需要使用更新版本的 Valgrind 来解决错误修复或访问新功能。与 OP 的命令行熟练度相关的 cmets 并没有真正的建设性。

标签: build valgrind


【解决方案1】:

对于 macOS Big Sur / Monterey:

brew tap LouisBrunner/valgrind
brew install --HEAD LouisBrunner/valgrind/valgrind

【讨论】:

    【解决方案2】:

    推荐:

    使用brew:brew install valgrind

    手动安装:

    这是在我的 Mac (10.6) 上运行的方法。仔细检查你是否有最新版本,然后切换到未压缩的目录

    cd /users/(insert username here)/downloads/valgrind-3.17.0
    

    我建议你按照另一个帖子的方式阅读自述文件。

    nano README
    

    开始构建; /usr/local 是程序将安装到的文件系统上的位置。如果默认情况下不起作用,有许多参数(如 prefix)可用于自定义安装到您的特定系统。通常只使用./configure 效果很好。

    ./configure --prefix=/usr/local
    
    make
    
    sudo make install
    

    或者你可以从 fink 或 macports 或 homebrew 获得它。

    【讨论】:

    • 我不建议其他用户使用./configure --prefix=/usr/bin。我这样做了,但自述文件中的测试不起作用(系统路径中没有valgrind)。只使用普通的./configure 对我来说效果很好。
    • 我也有过类似的经历。使用 --prefix=/usr/binmade valgrind 在系统路径中不可用,但忽略了 --prefix 所做的。
    • @Sonts 没有“正确的前缀”,你可以安装在任何你喜欢的地方。
    • @joshua.thomas.bird 显然,valgrind 中包含的安装脚本会将“bin”附加到您指定的前缀的末尾。如果你指定--prefix=/usr/bin,它会安装在/usr/bin/bin,所以我认为它是不正确的。
    • 亲爱的 joshua,由于某种悲惨的原因,brew 似乎无法在我的 MacOSX Mojave 10.14.6 上安装它,并说:valgrind: This formula either does not compile or function as expected on macOS versions newer than High Sierra due to an upstream incompatibility.
    【解决方案3】:

    在 MacOS High Sierra 上

    如果出现以下错误信息:

    brew install valgrind
    valgrind: This formula either does not compile or function as expected on macOS
    versions newer than Sierra due to an upstream incompatibility.
    

    修复

    (1)要正确安装它,首先,在终端输入以下命令(打开 Valgrind 的公式)

    brew edit valgrind
    

    并更改头部中的 URL

    https://sourceware.org/git/valgrind.git
    

    git://sourceware.org/git/valgrind.git
    

    (2) 更新 Homebrew:

    brew update
    

    (3) 最后,使用以下命令从 HEAD 安装 Valgrind:

    brew install --HEAD valgrind
    

    来源

    【讨论】:

    • 我可以确认,遗憾的是,这不适用于 OS Catalina (10.15 +)
    【解决方案4】:

    你可以通过 brew for Mac 安装它:

    brew install valgrind
    

    您可能必须手动将条目链接到 /usr/local/bin,因为在我的情况下 brew 拒绝这样做:

    $ ln /usr/local/Cellar/valgrind/3.8.1/bin/vgdb /usr/local/bin/vgdb
    ln: /usr/local/bin/vgdb: Permission denied
    $ sudo ln /usr/local/Cellar/valgrind/3.8.1/bin/vgdb /usr/local/bin/vgdb
    

    【讨论】:

    • 看来你可能必须从头安装它才能让它工作,as detailed here
    • 您的目录权限似乎不正确。 Homebrew 应该能够在没有 sudo 的情况下写入您的 /usr/local。见github.com/Homebrew/legacy-homebrew/issues/19670
    • 我不知道为什么使用 brew 不是“如何在 Mac 上安装 X”的公认答案。
    • @BradParks 从 HEAD 安装工作,但在我的机器上我得到 configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x, 14.x, 15.x, 16.x and 17.x (Mac OS X 10.6/7/8/9/10/11 and macOS 10.12/13) 运行 macOS Mojave 版本 10.14.3
    • 我没试过,但是this post on stackoverflow提出了一个解决方案,@GregDegruy
    【解决方案5】:

    您可能会发现使用macports 之类的东西更容易。如何安装它可能超出了这个问题的范围,但他们在他们的网站上有一个专用于它的page

    一旦你安装了 macports,你需要输入:

    sudo port install valgrind +universal
    

    正如您所说,您没有任何命令行经验,让我们简单地介绍一下该命令的不同部分:

    • sudo 表示该命令的其余部分将以 root 身份运行,并会询问您的密码。这是安装程序拥有正确权限所必需的
    • port是管理macports的命令行工具
    • installport 的命令。请尝试port help 以查看命令列表。
    • valgrind 告诉 macports 应该安装什么
    • +universal 是一个变体。这告诉 macports 配置 valgrind 以支持 32 位和 64 位支持。

    【讨论】:

      【解决方案6】:

      核心流程非常简单:

      确保您在正确的目录中。

      第一次运行:

      ./configure
      

      完成后,运行:

      make
      

      此时您需要将su 设置为root(这比较棘手,请参阅末尾的注释)。以 root 身份运行:

      make install
      

      完成后,您将安装有效的 valgrind。通过运行测试它

      valgrind ls -l
      

      要将su 转为root,您需要设置一个root 帐户。如果您过去没有这样做过,请参阅 apple here 的说明。

      要执行实际的su,您首先必须运行具有管理员权限的帐户。如果您还没有这样做,您可以通过以下方式切换用户:

      su admin
      

      其中admin 是具有管理员权限的用户的名称(您需要输入此帐户的密码)。然后,您可以从那里运行 su 进入 root:

      su
      

      您需要输入之前设置的root密码。

      【讨论】:

      • 运行 make 给出:"# 这是一个生成的文件,由以下抑制规则组成:" > default.supp echo "# " exp-sgcheck.supp xfree-3.supp xfree-4。 supp darwin10-drd.supp darwin10.supp >> default.supp cat exp-sgcheck.supp xfree-3.supp xfree-4.supp darwin10-drd.supp darwin10.supp >> default.supp cat: exp-sgcheck.supp : 没有这样的文件或目录 cat: xfree-3.supp: 没有这样的文件或目录 cat: xfree-4.supp: 没有这样的文件或目录 cat: darwin10-drd.supp: 没有这样的文件或目录 cat: darwin10.supp : 没有这样的文件或目录 make: *** [default.supp] 错误 1 ​​我做错了什么?
      • 这是预期行为(我目前无法正确测试,但我记得在运行 make 时看到了类似的消息)。运行make install 看看它是否有效。
      • make install 给我另一个错误当我使用 valgrind ls -l 测试它时它说 valgrind: command not found
      猜你喜欢
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多