web-dev-qa-db-ja.com

macOS High SierraでValgrindをビルドおよびインストールできません

MacOS High SierraにValgrindをインストールできません。 brewからは利用できません。 .1 で試しました。 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.
11
1N5818

このような問題がありました。だから、私は解決策を見つけました。このコードでvalgrindをインストールする必要がありますbrew install --HEAD valgrind

9
Yuriy Lesyo

MacOS High Sierra(10.13.x)で動作するように、valgrind 3.13.0のポートを作成しました。ここで入手できます: https://github.com/padiakalpesh/valgrind_3.13_high_sierra

ソースを取得したら、ソースディレクトリ内から次のコマンドを実行します。

./configure
make
Sudo make install
4
kallumama24

brew install Valgrindには、最新のmacOSにインストールするときに互換性の問題がありますが、この問題には回避策があります。 brewを使用してインストールしようとすると、このエラーメッセージが表示されます。

$ brew install valgrind valgrind:この式は、アップストリームの非互換性のために、High Sierraより新しいmacOSバージョンでは期待どおりにコンパイルまたは機能しません。エラー:満たされていない要件がこのビルドに失敗しました。

-------------------------------------------------- - - - - - - - - -解決 - - - - - - - - - - - - - - - - ------------------------------

ステップ1:$ brew edit valgrind

ステップ2:ファイルでこの行を見つける->(url " https://sourceware.org/git/valgrind.git ")

ステップ3:->(url "git://sourceware.org/git/valgrind.git")に置き換えます

Step4:$ brewアップデート

ステップ5:$ brew install --HEAD valgrind

そして完了!

それでも機能しない場合はお知らせください。ありがとう!!

2
Mayank Tomar

参考のため、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

トラブルシューティング

  • 抑制ファイルのコピーを読み取って、$ HOMEの内容を貼り付けることができない場合
  • clangバージョンについて文句を言う場合は、最初の編集を上げます
  • darwinのバージョンについて不平を言う場合は、2番目の編集を上げます
2
user10114753

私はmacOS上でValgrindのgit headバージョンをかなり定期的にビルドしています。 xcodeがインストールされている場合は、指示に従うだけではありません here

ビルドスクリプトで後で更新します。

別の方法として、clang消毒剤を検討することもできます。これはxcodeで有効にするか、-fsanitize = Xオプション(Xはアドレス、未定義、スレッド、メモリ、その他いくつか)で有効にできます。

1
Paul Floyd

MacPortsバージョンは2018年9月に機能し始めました!

コマンドは、完全を期すために(非常に高速に完了する-どうやら、事前に構築されています):

Sudo port install valgrind-devel

バージョン:

$ valgrind --version
valgrind-3.14.0.GIT
1

brew install --HEAD valgrindも私のために働いたが、HEADバージョン、ビルド/インストールを取得するのに時間がかかることを忘れないでください。

ただし、他の変更は必要ありません。

1
Steve Rogers

Valgrindはやや扱いにくいソフトウェアであり、macOSのメジャーリリースごとに更新が必要です。

2018年2月の時点では、macOS High Sierra(10.13)をサポートするValgrindのリリースバージョンはありません。 Valgrindの開発バージョンを使用するか、代替ツールを使用する必要があります。 (Appleの Instruments には、探している機能の一部が含まれている場合があります。)

1
duskwuff

以下は、macOS 10.13.6で最新の Valgrind リリース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"
# 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から取得されます。

0
Michael Hall