【问题标题】:Valgrind fails when installing - makeValgrind 在安装时失败 - make
【发布时间】:2017-03-18 20:59:30
【问题描述】:

我有 Mac OS X Sierra 10.12.3,我知道 Valgrind 可能与我的系统不兼容。我已经成功运行了 automake 和 svn,但是当我尝试运行 ma​​ke 时,它显示:

priv/ir_opt.c:5930:14: error: explicitly assigning value of variable of type 'Int' (aka 'int') to itself [-Werror,-Wself-assign]
  for (m = m; m < A_NENV; m++) {

有人知道这是因为与 Mac OS 兼容还是其他原因?谢谢。

【问题讨论】:

  • 这不是make,而是C编译器。删除 -Werror 标志的任何位置(可能在 Makefile 中)。
  • @Jens 感谢您的回答,尝试从 Valgrind Makefile 中删除所有 -Wall-Werror,尝试从我的 ~/.profile 中删除所有内容,但是我注意到它可能使用 Xcode 的制作,因为它打印出/Applications/Xcode.app/Contents/Developer/usr/bin/make
  • 如果没有帮助,我建议修改源;因为m = m 什么都不做,所以可以安全地从 ir_opt.c 中删除它:for (; m &lt; A_NEW; m++)
  • 感谢@Jens,辛苦了!

标签: macos makefile valgrind


【解决方案1】:

按照 Jens 的建议,我找到了 ir_opt.c(遇到同样问题的人请注意:小心,因为有多个 ir_opt.c 文件,您需要编辑 VEX/priv/ir_opt.c 中的一个)并更改了 @ 987654324@ 到 m = 0,因为变量 m 在上面几行被声明为 0。

【讨论】:

    【解决方案2】:

    Valgrind 无法在 MacOS X Sierra 上运行,我已经尝试了一段时间。

    我知道您使用 SVN 安装它,我也是,而且我什至从未遇到过您遇到的这个错误。但是如果你真的运行valgrind --tool=memcheck --leak-check=full -v ./&lt;program&gt;,你会发现自己遇到了一个错误。

    根据我的阅读,这是由 valgrind 的开发人员无法对其软件进行修改的 OS X 源代码中的某些内容引起的,因为导致错误的 OS X 部分已获得许可和闭源。或者直到最近,他们还没有更新自己的源代码,或者类似的东西。

    无论如何,如果你想在 OS X 上使用 valgrind,你必须安装一个带有 linux 的虚拟机。我正在将 VirtualBox 与 lubuntu 一起使用,并且我正在将我的主文件夹共享给 VM,并且以这种方式运行 memchecks 没有任何问题。任何发行版都应该没问题,但 IMO 越轻越好。

    如果出于某种原因它确实对您使用 valgrind memchecks 有效,那么我猜您只是幸运。无论如何,我仍然建议您改用 linux VM,因为无法保证 valgrind 将在 OS X 上完全运行,并且它可能无法捕获应有的所有内容。

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多