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

无法在macOS High Sierra上构建和安装Valgrind,macos,valgrind,macos-high-sierra,Macos,Valgrind,Macos High Sierra,我不能在macOS High Sierra上安装Valgrind。无法通过brew获取该功能。我试过了。在makeinstall之后,我收到以下消息: 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) 自制软件说: valgrind: This formula either does not compile or function as expe

我不能在macOS High Sierra上安装Valgrind。无法通过
brew
获取该功能。我试过了。在
makeinstall
之后,我收到以下消息:

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)
自制软件说:

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.

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


截至2018年2月,没有发布支持macOS High Sierra(10.13)的Valgrind版本。您将需要使用Valgrind的开发版本,或者使用其他工具。(苹果可能有你想要的一些功能。)

我定期在macOS上构建git head版本的Valgrind。如果您已经安装了xcode,那么除了按照说明进行操作外,就没有什么别的了

稍后我将使用构建脚本进行更新


作为替代,你可能需要考虑CLAN消毒液。这可以在xcode中启用,也可以使用-fsanize=X选项启用(其中X是地址、未定义、线程、内存和其他一些)。 所以,我找到了解决办法。您应该使用此代码安装valgrind
brew安装——HEAD valgrind

我创建了valgrind 3.13.0端口,用于macOS High Sierra(10.13.x)。你可以在这里找到它:

获得源代码后,从源目录中运行以下命令:

./configure
make
sudo make install

使用
brew安装--HEAD-valgrind
对我来说也很有用,但请务必知道,要获取HEAD版本并构建/安装需要一段时间


但是,无需进行其他更改。

我已于2018年7月完成此项工作,以供参考:

编辑/配置 跑 创建文件~/.valgrind.supp 创建文件~/.valgrindrc 故障排除
  • 如果无法读取suppresion文件,请复制并粘贴$HOME的内容
  • 如果它抱怨叮当作响的版本,那就把第一次编辑的版本升级
  • 如果它抱怨达尔文的版本,那就把第二次编辑推上

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

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

版本:

$ valgrind --version
valgrind-3.14.0.GIT

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

VERSION=“3.14.0”
wget-O-http://www.valgrind.org/downloads/valgrind-“$VERSION”.tar.bz2 | tar xjf-
cd valgrind-“$VERSION”
#如果您希望将其安装在特定位置,请使用--prefix=/path/to
/配置
制作
#可能需要sudo
安装
#测试一切正常
瓦尔格林ls-l

这些说明取自Valgrind发布tar ball中的
自述文件

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

$brew安装valgrind valgrind:这个公式要么不能在macOS上编译,要么不能在macOS上正常工作 由于上游不兼容,版本比High Sierra更新。 错误:未满足的需求使此生成失败

-------------------------------------------------------------------解决方案--------------------------------------------------------------

步骤1:$brew编辑valgrind

步骤2:在文件->中查找此行(url“”)

步骤3:将其替换为->(url“git://sourceware.org/git/valgrind.git))

步骤4:$brew更新

第5步:$brew安装——HEAD valgrind

完成了

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

你为什么不想安装最新的Valgrind 3.13?只是一个链接不行。请粘贴/引用相关代码并解释,以便我们更容易获得答案。谢谢这对我有用。谢谢你真的知道为什么会这样吗?我知道,
--HEAD
标志构建公式的开发版本?如果使用此解决方案,安装后会出现错误,说明版本与你的macOs不兼容,你可能需要检查
./autogen.sh
./configure
make
make install
# 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
}
--suppressions=$HOME/.valgrind.supp
sudo port install valgrind-devel
$ valgrind --version
valgrind-3.14.0.GIT