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

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

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

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

GCC

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

MacOS(OSX)

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

コンパイル

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

C++

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

解決済

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

pra
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回答

1評価

0クリップ

193閲覧

投稿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

cd RooUnfold-master mkdir build cd build cmake .. make -j4 cd .. source build/setup.sh

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

bash

$ cd RooUnfold-master $ mkdir build $ cd build $ cmake .. CMake Deprecation Warning at CMakeLists.txt:10 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. Setup using plain ROOT Doxygen build started -- Configuring done -- Generating done -- Build files have been written to: /Users/XXXXXX/RooUnfold-master/build $ make -j4 [ 2%] Generating G__RooUnfold.cxx, libRooUnfold_rdict.pcm, libRooUnfold.rootmap Scanning dependencies of target RooUnfold [ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfoldBayes.o [ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfold.o [ 9%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooFitUnfold.o [ 12%] Building CXX object CMakeFiles/RooUnfold.dir/src/RooUnfoldBinByBin.o In file included from /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBinByBin.cxx:8: /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBinByBin.h:44:3: warning: 'CheckTObjectHashConsistency' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] ClassDefT (RooUnfoldBinByBinT, 1) // Bin-by-bin unfolding ^ /opt/homebrew/Cellar/root/6.26.04_1/include/root/Rtypes.h:392:4: note: expanded from macro 'ClassDefT' _ClassDefOutline_(name,id,virtual,) \ ^ /opt/homebrew/Cellar/root/6.26.04_1/include/root/Rtypes.h:300:4: note: expanded from macro '_ClassDefOutline_' _ClassDefBase_(name,id, virtual_keyword, overrd) \ ^ (中略) 97 warnings generated. [ 63%] Linking CXX shared library libRooUnfold.dylib [ 63%] Built target RooUnfold [ 73%] Building CXX object CMakeFiles/RooUnfoldTest3D.dir/test/src/RooUnfoldTest3D.o [ 73%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/generate_test.o [ 73%] Building CXX object CMakeFiles/RooUnfoldTest2D.dir/test/src/RooUnfoldTest2D.o [ 73%] Building CXX object CMakeFiles/RooUnfoldTest.dir/test/src/RooUnfoldTest.o [ 75%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/response_test.o [ 78%] Linking CXX executable RooUnfoldTest ld: library not found for -lgcov clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [RooUnfoldTest] Error 1 make[1]: *** [CMakeFiles/RooUnfoldTest.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 80%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/bayes_test.o [ 82%] Linking CXX executable RooUnfoldTest2D ld: library not found for -lgcov clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [RooUnfoldTest2D] Error 1 make[1]: *** [CMakeFiles/RooUnfoldTest2D.dir/all] Error 2 [ 85%] Linking CXX executable RooUnfoldTest3D [ 87%] Building CXX object test/CMakeFiles/RooUnfoldTests.dir/src/RooUnfold_unit_tests.o ld: library not found for -lgcov clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [RooUnfoldTest3D] Error 1 make[1]: *** [CMakeFiles/RooUnfoldTest3D.dir/all] Error 2 In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:45:17: warning: 'SetRegParm' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] virtual void SetRegParm (Double_t parm); ^ /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:31:20: note: in instantiation of template class 'RooUnfoldBayesT<TH1, TH2>' requested here RooUnfoldBayes unfold(&response, h_meas, 4); ^ /Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:115:22: note: overridden virtual function is here virtual void SetRegParm (Double_t parm); ^ In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:46:18: warning: 'GetRegParm' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] virtual double GetRegParm() const; ^ /Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:116:22: note: overridden virtual function is here virtual Double_t GetRegParm() const; // Get Regularisation Parameter ^ In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:47:16: warning: 'Reset' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] virtual void Reset(); ^ /Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:74:16: note: overridden virtual function is here virtual void Reset (); ^ In file included from /Users/XXXXXX/RooUnfold-master/test/src/bayes_test.cxx:13: /Users/XXXXXX/RooUnfold-master/src/RooUnfoldBayes.h:48:16: warning: 'Print' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] virtual void Print (Option_t* option= "") const; ^ /Users/XXXXXX/RooUnfold-master/src/RooUnfold.h:129:8: note: overridden virtual function is here void Print(Option_t* opt="") const; ^ /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] check(n==r.size(), "error in bayes: %d bins is not %u",n,r.size()); ~~ ^~~~~~~~ %lu /Users/XXXXXX/RooUnfold-master/test/src/dbg.h:30:18: note: expanded from macro 'check' log_err(M, ##__VA_ARGS__); errno=0; goto error; } ~ ^~~~~~~~~~~ /Users/XXXXXX/RooUnfold-master/test/src/dbg.h:20:26: note: expanded from macro 'log_err' clean_errno(), ##__VA_ARGS__) ^~~~~~~~~~~ 4 warnings generated. 1 warning generated. [ 90%] Linking CXX static library libRooUnfoldTests.a [ 90%] Built target RooUnfoldTests make: *** [all] Error 2

質問内容

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

bash

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

のようなlikerのエラーと

bash

warning: '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

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

shell

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

shellはzshです

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CMake

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

GCC

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

MacOS(OSX)

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

コンパイル

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

C++

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