繁体   English   中英

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

[英]Unable to build and install Valgrind on macOS High Sierra

我无法在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.

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

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

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

./configure
make
sudo make install

我有这个工作在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

故障排除

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

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

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

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

Step1:$ brew编辑valgrind

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

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

Step4:$ brew更新

Step5:$ brew install --HEAD valgrind

并做了!

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

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

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

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

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

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

使用brew install --HEAD valgrind也对我brew install --HEAD valgrind ,但一定要知道拉HEAD版本和构建/安装需要一段时间。

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

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

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

sudo port install valgrind-devel

版:

$ valgrind --version
valgrind-3.14.0.GIT

以下使用最新的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发布tar球内的README

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM