无法在macOS High Sierra上构建和安装Valgrind

问题描述 投票:11回答:9

我无法在macOS High Sierra上安装Valgrind。它不是通过brew提供的。我试过3.10。在make install之后,我收到这条消息:

configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x and 14.x (Mac OS X 10.6/7/8/9/10)

Homebrew说:

valgrind: This formula either does not compile or function as expected on macOS
versions newer than Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
macos valgrind macos-high-sierra
9个回答
8
投票

我有这样的问题。所以,我找到了解决方案。您应该通过此代码brew install --HEAD valgrind安装valgrind


4
投票

我已经创建了一个valgrind 3.13.0的端口来处理macOS High Sierra(10.13.x)。你可以在这里得到它:https://github.com/padiakalpesh/valgrind_3.13_high_sierra

获取源后,从源目录中运行以下命令:

./configure
make
sudo make install

2
投票

我有这个工作在2018年7月,供参考:

https://gist.github.com/AlessandroMinali/d8316d6cc650c97027433644c2ff31ee

编辑./configure

- 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*)
+ 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*|applellvm-9.*)


- 5879:          16.*)
+ 5879:          17.*)

./autogen.sh
./configure
make
make install

创建文件〜/ .valgrind.supp

# false positive for any executable (it seems)
# macOS 10.12.6
# valgrind 3.13.0
{
    libtrace initialization false positive
    Memcheck:Param
    msg->desc.port.name
    fun:mach_msg_trap
    fun:mach_msg
    fun:task_set_special_port
    fun:_os_trace_create_debug_control_port
    fun:_libtrace_init
}

创建文件〜/ .valgrindrc

--suppressions=$HOME/.valgrind.supp

Troubleshooting

  • 如果无法读取抑制文件复制并粘贴$ HOME的内容
  • 如果它抱怨铿锵声版本,请首先编辑
  • 如果它抱怨达尔文版本,请进行第二次编辑

2
投票

brew安装Valgrind在最新的macOS上安装时存在一些兼容性问题,但是有一个解决方法可以解决这个问题。当您尝试使用brew安装它时,您必须收到此错误消息。

$ brew install valgrind valgrind:由于上游不兼容,此公式要么不能在比High Sierra更新的macOS版本上按预期编译或运行。错误:未满足的要求未通过此构建。

-------------------------------------------------- - - - - - - - - -解 - - - - - - - - - - - - - - - - ------------------------------

Step1:$ brew编辑valgrind

Step2:在文件中找到这一行 - >(url“https://sourceware.org/git/valgrind.git”)

Step3:用 - >替换它(url“git://sourceware.org/git/valgrind.git”)

Step4:$ brew更新

Step5:$ brew install --HEAD valgrind

并做了!

如果它仍然不起作用,请告诉我。谢谢!!


1
投票

我定期在macOS上构建Valgrind的git head版本。如果您安装了xcode,那么除了遵循here说明之外没有太多其他内容。

我稍后会使用我的构建脚本进行更新。

作为替代方案,您可能需要考虑使用clang消毒剂。这可以在xcode中启用,或使用-fsanitize = X选项启用(其中X是地址,未定义,线程,内存和其他一些选项)。


1
投票

使用brew install --HEAD valgrind也为我工作,但一定要知道,需要一段时间来拉动HEAD版本,并建立/安装。

但是,不需要进行其他更改。


1
投票

Valgrind是一个相当敏感的软件,需要更新macOS的每个主要版本。

截至2018年2月,没有发布的Valgrind版本支持macOS High Sierra(10.13)。您需要使用Valgrind的开发版本,或使用替代工具。 (Apple的Instruments可能具有您正在寻找的一些功能。)


1
投票

MacPorts版本于2018年9月开始为我工作!

该命令,为了完整起见(完成非常快 - 显然,预建):

sudo port install valgrind-devel

版:

$ valgrind --version
valgrind-3.14.0.GIT

0
投票

以下是使用最新的Valgrind版本3.14.0(2018年10月9日)在macOS 10.13.6上工作的。

VERSION="3.14.0"
wget -O - http://www.valgrind.org/downloads/valgrind-"$VERSION".tar.bz2 | tar xjf -
cd valgrind-"$VERSION"
# use --prefix=/path/to if you want it installed somewhere in particular
./configure
make
# may need sudo
make install
# test all is working
valgrind ls -l

这些说明来自Valgrind释放焦油球内的README

© www.soinside.com 2019 - 2024. All rights reserved.