質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

811閲覧

ROOT C++ : RooUnfoldのMacにおけるcmakeを用いたコンパイル

pra

総合スコア17

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

0クリップ

投稿2022/06/21 02:17

編集2022/06/22 06:19

ROOTおよびC++の超初心者です。

実現したいこと

MacでROOTのRooUnfoldをコンパイルし、使用したい。

背景 / 発生している問題・エラーメッセージ

(1) MacにROOTをインストール。ROOT自体は起動した。
(2) RooUnfoldを使用するためにhttps://gitlab.cern.ch/RooUnfold/RooUnfold からRooUnfold-master.zipをダウンロード・解凍し、同ページの "Building the Library"の記述通りに以下を実行:

bash

1cd RooUnfold-master 2mkdir build 3cd build 4cmake .. 5make -j4 6cd .. 7source build/setup.sh

(3) しかし、以下のようなエラーメッセージが出てきてコンパイルできない。

bash

1$ cd RooUnfold-master 2$ mkdir build 3$ cd build 4$ cmake .. 5CMake Deprecation Warning at CMakeLists.txt:10 (cmake_minimum_required): 6 Compatibility with CMake < 2.8.12 will be removed from a future version of 7 CMake. 8 9 Update the VERSION argument <min> value or use a ...<max> suffix to tell 10 CMake that the project does not need compatibility with older versions. 11 12 13Setup using plain ROOT 14Doxygen build started 15-- Configuring done 16-- Generating done 17-- Build files have been written to: /Users/XXXXXX/RooUnfold-master/build 18 19$ make -j4 20[ 2%] Generating G__RooUnfold.cxx, libRooUnfold_rdict.pcm, libRooUnfold.rootmap 21Scanning dependencies of target RooUnfold 22[ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfoldBayes.o 23[ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfold.o 24[ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooFitUnfold.o 25[ 12%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfoldBinByBin.o 26In file included from /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBinByBin.cxx:8: 27/Users/XXXXXX/RooUnfold-master/src/RooUnfoldBinByBin.h:44:3: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] 28 ClassDefT (RooUnfoldBinByBinT, 1) // Bin-by-bin unfolding 29 ^ 30/opt/homebrew/Cellar/root/6.26.04_1/include/root/Rtypes.h:392:4: note: expanded from macro 'ClassDefT' 31 _ClassDefOutline_(name,id,virtual,) \ 32 ^ 33/opt/homebrew/Cellar/root/6.26.04_1/include/root/Rtypes.h:300:4: note: expanded from macro '_ClassDefOutline_' 34 _ClassDefBase_(name,id, virtual_keyword, overrd) \ 35 ^ 36 37(中略) 38 3997 warnings generated. 40[ 63%] Linking CXX shared library libRooUnfold.dylib 41[ 63%] Built target RooUnfold 42[ 73%] Building CXX object CMakeFiles/RooUnfoldTest3D.dir/test/src/RooUnfoldTest3D.o 43[ 73%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/generate_test.o 44[ 73%] Building CXX object CMakeFiles/RooUnfoldTest2D.dir/test/src/RooUnfoldTest2D.o 45[ 73%] Building CXX object CMakeFiles/RooUnfoldTest.dir/test/src/RooUnfoldTest.o 46[ 75%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/response_test.o 47[ 78%] Linking CXX executable RooUnfoldTest 48ld: library not found for -lgcov 49clang: error: linker command failed with exit code 1 (use -v to see invocation) 50make[2]: *** [RooUnfoldTest] Error 1 51make[1]: *** [CMakeFiles/RooUnfoldTest.dir/all] Error 2 52make[1]: *** Waiting for unfinished jobs.... 53[ 80%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/bayes_test.o 54[ 82%] Linking CXX executable RooUnfoldTest2D 55ld: library not found for -lgcov 56clang: error: linker command failed with exit code 1 (use -v to see invocation) 57make[2]: *** [RooUnfoldTest2D] Error 1 58make[1]: *** [CMakeFiles/RooUnfoldTest2D.dir/all] Error 2 59[ 85%] Linking CXX executable RooUnfoldTest3D 60[ 87%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/RooUnfold_unit_tests.o 61ld: library not found for -lgcov 62clang: error: linker command failed with exit code 1 (use -v to see invocation) 63make[2]: *** [RooUnfoldTest3D] Error 1 64make[1]: *** [CMakeFiles/RooUnfoldTest3D.dir/all] Error 2 65In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: 66/Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:45:17: warning: 'SetRegParm' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] 67 virtual void SetRegParm (Double_t parm); 68 ^ 69/Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:31:20: note: in instantiation of template class 'RooUnfoldBayesT<TH1, TH2>' requested here 70 RooUnfoldBayes unfold(&response, h_meas, 4); 71 ^ 72/Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:115:22: note: overridden virtual function is here 73 virtual void SetRegParm (Double_t parm); 74 ^ 75In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: 76/Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:46:18: warning: 'GetRegParm' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] 77 virtual double GetRegParm() const; 78 ^ 79/Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:116:22: note: overridden virtual function is here 80 virtual Double_t GetRegParm() const; // Get Regularisation Parameter 81 ^ 82In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: 83/Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:47:16: warning: 'Reset' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] 84 virtual void Reset(); 85 ^ 86/Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:74:16: note: overridden virtual function is here 87 virtual void Reset (); 88 ^ 89In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: 90/Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:48:16: warning: 'Print' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] 91 virtual void Print (Option_t* option= "") const; 92 ^ 93/Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:129:8: note: overridden virtual function is here 94 void Print(Option_t* opt="") const; 95 ^ 96/Users/XXXXXX/RooUnfold-master/test/src/RooUnfold_unit_tests.cxx:29:62: warning: format specifies type 'unsigned int' but the argument has type 'std::vector<float>::size_type' (aka 'unsigned long') [-Wformat] 97 check(n==r.size(), "error in bayes: %d bins is not %u",n,r.size()); 98 ~~ ^~~~~~~~ 99 %lu 100/Users/XXXXXX/RooUnfold-master/test/src/dbg.h:30:18: note: expanded from macro 'check' 101 log_err(M, ##__VA_ARGS__); errno=0; goto error; } 102 ~ ^~~~~~~~~~~ 103/Users/XXXXXX/RooUnfold-master/test/src/dbg.h:20:26: note: expanded from macro 'log_err' 104 clean_errno(), ##__VA_ARGS__) 105 ^~~~~~~~~~~ 1064 warnings generated. 1071 warning generated. 108[ 90%] Linking CXX static library libRooUnfoldTests.a 109[ 90%] Built target RooUnfoldTests 110make: *** [all] Error 2

質問内容

以上のエラーを解消し、Macで正常にRooUnfoldを使用するにはどうすれば良いでしょうか?
特に

bash

1ld: library not found for -lgcov 2clang: error: linker command failed with exit code 1 (use -v to see invocation)

のようなlikerのエラーと

bash

1warning: 'SetRegParm' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

のようなoverridesのエラーを理解・解決したいと思っています。
ROOTやC++を使ったことがほとんどなく、初心者質問で大変恐縮ですが、よろしくお願いします。

環境

  • Mac OS : Monterey ver. 12.3
  • チップ:Apple M1 Pro
  • ROOT : ver. 6.26

shell

1$ root --version 2ROOT Version: 6.26/04 3Built for macosxarm64 on Jun 07 2022, 16:01:16 4From tags/v6-26-04@v6-26-04
  • gcc : ver. 13.1.6

shell

1$ gcc --version 2Apple clang version 13.1.6 (clang-1316.0.21.2) 3Target: arm64-apple-darwin21.4.0 4Thread model: posix 5InstalledDir: /Library/Developer/CommandLineTools/usr/bin

shellはzshです

aaabbbsss👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

CMakeList.txtの問題のようでした。
https://gitlab.cern.ch/RooUnfold/RooUnfold/-/tree/CMakeLists-fixからダウンロードしたものは正常にbuildでき、使用できました。
両者の違いは理解できていませんが、少なくともMac OSユーザーは"master"(https://gitlab.cern.ch/RooUnfold/RooUnfold/-/tree/master)ではなく"CMakeLists-fix"をダウンロードした方がよさそうです。

投稿2022/06/21 21:17

編集2022/06/21 21:19
pra

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問