LoginSignup
2
0

More than 5 years have passed since last update.

msys2でlcovをinstallする方法

Last updated at Posted at 2016-07-18

ものすごい簡単です。

前提

pacman -S base-devel mingw-w64-i686-clang mingw-w64-x86_64-clang mingw-w64-i686-perl mingw-w64-x86_64-perl git

まあこのくらいはよく使うので入れておきましょう。

install

msys2_shell.cmdがあるところをコマンドプロンプトで開いて

コマンドプロンプト
call msys2_shell.cmd -mingw32
msys2_mingw32
mkdir patches
cd patches
git clone -v --progress --config core.autocrlf=false https://github.com/Alexpux/MINGW-packages.git ./
cd mingw-w64-lcov
makepkg -csi

同様にして

コマンドプロンプト
call msys2_shell.cmd -mingw64
msys2_mingw64
cd patches/mingw-w64-lcov
makepkg -csi

以上です。

注意:msys2 mingw clangではlink errorになる

coverageを取るときは、gccでもclangでも

clang++ test.cpp -o test.out -coverage -g -O0 -Wall -Wextra -std=c++14 -lWs2_32

のように-coverageをつけてコンパイルするんですが、msys2 mingw clangでは

C:\msys64\tmp\test-9d9013.o:(.text+0xb5f2b): `llvm_gcda_emit_function' に対する定義されていない参照です
C:\msys64\tmp\test-9d9013.o:(.text+0xb5f3e): `llvm_gcda_emit_arcs' に対する定義されていない参照です
C:\msys64\tmp\test-9d9013.o:(.text+0xb5f43): `llvm_gcda_summary_info' に対する定義されていない参照です
C:\msys64\tmp\test-9d9013.o:(.text+0xb5f48): `llvm_gcda_end_file' に対する定義されていない参照です
C:\msys64\tmp\test-9d9013.o:(.text+0xf8923): `llvm_gcov_init' に対する定義されていない参照です

こんな感じのlink errorがどっさり出てきます。libprofile_rt.aがないせいだと思います。ので、gccを使いましょう。pacmanからじゃなくて自力でllvmをビルドしてパッケージングすればワンちゃん(めんd)

参考

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0