Locked History Actions

Geant4_CMake

Geant4.9.5.p01 on SLC5.5

  • CMake を用いて Geant4.9.5.p01 を Scientific Linux CERN 5.5 にインストールした。以下のインストールの手順は、基本的に公式のインストールガイドの手順を追ったもの。kithisの日記 - Geant4 9.5隆己君のページ - geant4 も参考にした(以前のバージョンからの変更点も書いてある)。CLHEP は Geant4 に組み込まれたようで、個別にインストールする必要がなくなった。

Geant4 をインストールした環境

  • Scientific Linux CERN 5.5 32bit
  • Geant4.9.5.p01
  • gcc 4.1.2
  • CMake 2.8.9 (make してインストールした。インストール方法はこちら。)

  • Eclipse C/C++ Development Tools (CDT) Version: 8.1.0.201206111645 (バイナリをダウンロード)
    • in Eclipse Version: Juno Release
  •  

  • Scientific Linux CERN 5.5 には、コンパイラやグラフィック関連のライブラリ、ヘッダがインストールされている必要がある。これらがないと、cmake 時にエラーとなる。Scientific Linux CERN 5.5 をデフォルトの状態でインストールした場合、おそらくコンパイラ等はインストールされない。Scientific Linux 6 の場合、"Desktop" としてではなく "Software Development Workstation" としてインストールすれば、コンパイラやライブラリがインストールされるようだ。エラーやコンパイラ等のインストール方法については、エラー集の"コンパイラがない"と"X11 関連のライブラリがない"を参照。

公式のテスト環境 (Geant4.9.5)

  • Geant4 が公式にサポート、又はテストされている環境は以下の通り (参考: Geant4 9.5 Release Notes)。

  •  

    • Linux, gcc-4.1.2 and gcc-4.3.2 (SLC5).
      • Tested on 32 and 64 bit architectures (Intel or AMD) with Scientific Linux CERN 5 (SLC5) (based on RedHat Linux Enterprise 5).

    • MacOSX 10.7 with gcc-4.2.1
    • Windows7 with Visual C++ 10.0 (Visual Studio 2010)

その他の環境へのインストール

  • 一般にプログラムのインストールをする場合、自身の環境をそのプラグラムが開発された環境と同じにしておくと、問題が起きにくく問題が起きたときでも対処しやすい。サポートも受け易い。しかし、Red Hat 系のディストリビューションである Red Hat Enterprise Linux, Fedora, CentOS, Scientific Linux などならば、同様の手順で出来るはず。Scientific Linux 6.1 & 6.3 にはインストールできた。最近の Fedora にもインストールできるようだ。Red Hat Enterprise Linux は Fedora の開発コミュニティーの成果物をベースにし、有償サポートを付加したディストリビューションである。また、CentOS, Scientific Linux は Red Hat Enterprise Linux のクローン (Red Hat Enterprise Linux の公開されたソースを元にリビルドされたディストリビューション) である。Scientific Linux CERN は、Scientific Linux を CERN のコンピューター環境にローカライズしたディストリビューションである。Red Hat Enterprise Linux のバージョンと、CentOS, Scientific Linux, Scientific Linux CERN のバージョンは対応しており、例えば、CentOS-5.5, Scientific Linux 5.5, Scientific Linux CERN 5.5 は Red Hat Enterprise Linux 5.5 のクローンである。それぞれのディストリビューションのバージョンの関係は以下の通り。

Scientific Linux

CentOS

Red Hat Enterprise Linux

Fedora

Scientific Linux 4

CentOS-4

Red Hat Enterprise Linux 4

Fedora Core 3

Scientific Linux 5

CentOS-5

Red Hat Enterprise Linux 5

Fedora Core 6

Scientific Linux 6

CentOS-6

Red Hat Enterprise Linux 6

Fedora 12
Fedora 13
several modifications

  • ちなみに、Scientific Linux で問題がおきた場合、Scientific Linux というキーワードを指定する代わりに Fedora というキーワードで Google の検索をすると、問題の解決方法が見つかることが多い。検索条件を絞るならば、Scientific Linux 5 で起きた問題の場合、 Fedora Core 6 というキーワードあたりが良さそう (上記の表を参照)。
  • Debian 系 の Linux (Debian, Ubuntu など) へのインストールは、どうなっているのかよくわからない。以前は apt-get で Geant4 がインストールできたが、今はどうなっているのだろう?
  • (参考)

ディレクトリ構造

  • 基本的に Geant4 はどこにインストールしても構わない。自分の場合はすでに古いバージョンの Geant4 がインストールされているため、以下のようにディレクトリ構造を深くした。ホームディレクトリが雑多になるのを避けるため、cern ディレクトリに CERN 関連のプログラムをまとめている。自分のホームディレクトリ以下にインストールする場合、ルート権限は必要ない。(Geant4 のデフォルトのインストール場所は /usr/local であるので(たしか)、ここにインストールする場合はルート権限が必要。)
  • /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01.tar.gz
                                   geant4.9.5.p01/          <-- geant4.9.5.p01.tar.gz を解凍すると出来る
                                   geant4.9.5.p01-build/    <-- mkdir コマンドを使って自分で作る
                                   geant4.9.5.p01-install/  <-- CMake のオプションとして指定 ($ make install コマンド実行時に自動的に作成される)

インストール

  1. ソースをダウンロード

    • Geant4 Software Download のページから "GNU or Linux tar format, compressed using gzip ( 27Mbytes, 28466803 bytes )." の Download ボタンを押してソースをダウンロードするか、wget コマンドでソースをダウンロード。ダウンロードするディレクトリは、バージョンにあわせて geant4.9.5.p01 にした。さらに、これを展開する。build する場所 (geant4.9.5.p01-build) も作る。実際のコマンドの入力例は以下の通り。koba というユーザーの場合の例を示している。他のユーザー名でログインしている場合、koba の部分を適宜変更(以下同様)。

    • $ mkdir -p /home/koba/cern/geant4.9.5.p01
      $ cd /home/koba/cern/geant4.9.5.p01
      $ wget http://geant4.cern.ch/support/source/geant4.9.5.p01.tar.gz
      $ ls
      geant4.9.5.p01.tar.gz
      $ tar zxf geant4.9.5.p01.tar.gz
      $ mkdir geant4.9.5.p01-build
      $ ls
      geant4.9.5.p01/  geant4.9.5.p01-build/  geant4.9.5.p01.tar.gz
    •  

  2. CMake 実行

    • make をする前に cmake コマンドを実行する。CMake のインストール方法はこちら。cmake コマンドは Makefile を作るコマンドである(他にもいろいろ出来る)。以前の ./Configure コマンドに相当するものか? cmake コマンドは build 用のディレクトリ内で実行し、引数にソースのあるディレクトリ (/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01) を指定する。また、make 時に使うオプションなども同時に設定する。以下のオプションが指定可能。

      • -DGEANT4_USE_OPENGL_X11=ON : OpenGL を使う場合、このオプションを加える。
      • -DGEANT4_INSTALL_DATA=ON : make コマンドを実行したときに物理データのダウンロードする場合、このオプションを加える。ただし、このオプションを加える場合、 CMake のバージョンは 2.8 以上が必要。
      • -DCMAKE_INSTALL_PREFIX=インストール先のディレクトリ: Geant4 をインストールするディレクトリを指定する。
      • VRMLファイルの出力はオプション必要なし : 後で実際に Geant4 のプログラムを書き、VRMLView で可視化をしたい場合(VRMLファイルを出力したい場合)でも、追加のオプションは必要ない。
    • ccmake というコマンドを用いると、選択項目がより分かり易い(隆己君Thanks!)。サンプルプログラム(exampleB1など)を動かす場合、大抵 -DGEANT4_USE_OPENGL_X11=ON と -DGEANT4_INSTALL_DATA=ON のオプションが必要になる。その他のオプションはインストールガイド2.3. Geant4 Build Options を参照。

    • $ cd /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
      $ cmake -DCMAKE_INSTALL_PREFIX=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01
    • cmake 時のメッセージはこれ

    •  

  3. make と install

    • cmake を実行したディレクトリ (/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build) で $ make を実行し Geant4 のソースをコンパイル。make コマンドに -j4 というオプションを指定すると、マルチコア環境の場合に早くコンパイルできる。4コアの場合は -j4 、2コアの場合は -j2 というように、コア数に合わせて指定するのが良さそう。make 時には、物理データのダウンロードも行われる。CERN のサイト (http://geant4.cern.ch/support/source/) にある tar.gz ファイルをダウンロードしているようだ。ダウンロード先は、build ディレクトリの Externals ディレクトリ内の各フォルダ。-j4 や -j5 あたりのオプションを指定すると、コンパイルと物理データのダウンロードが平行して行われる。コンパイル終了後、 $ make install を実行すると cmake の -DCMAKE_INSTALL_PREFIX オプションで指定したディレクトリ(/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install) に Geant4 のライブラリとインクルードファイルがインストールされる。CMAKE_INSTALL_PREFIX を指定しない場合は /usr/local にインストールされる。/usr/local にインストールする場合、 root 権限が必要 (make install コマンド実行時)。-DCMAKE_INSTALL_PREFIX で指定するディレクトリが自分の home ディレクトリ内にある場合、root 権限は必要ない。

    • $ pwd
      /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
      $
      $ make -j4
      Scanning dependencies of target G4ABLA
      [  0%] Creating directories for 'G4ABLA'
      [  0%] Performing download step (download, verify and extract) for 'G4ABLA'
      -- downloading...
           src='http://geant4.cern.ch/support/source/G4ABLA.3.0.tar.gz'
           dst='/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build/Externals/G4ABLA-3.0/src/G4ABLA.3.0.tar.gz'
           timeout='none'
      -- [download 5% complete]
      -- [download 60% complete]
      -- [download 100% complete]
      ...
      [ 98%] Building CXX object source/visualization/OpenGL/CMakeFiles/G4OpenGL.dir/src/G4OpenGLStoredX.cc.o
      [ 98%] Building CXX object source/visualization/OpenGL/CMakeFiles/G4OpenGL.dir/src/G4OpenGLStoredXViewer.cc.o
      [100%] Building CXX object source/visualization/OpenGL/CMakeFiles/G4OpenGL.dir/src/G4OpenGLXViewer.cc.o
      Linking CXX shared library ../../../outputs/library/Linux-g++/libG4OpenGL.so
      [100%] Built target G4OpenGL
      $
      $ make install
      [  0%] Built target G4ABLA
      [  0%] Built target G4EMLOW
      [  1%] Built target G4NDL
      [  1%] Built target G4NEUTRONXS
      [  1%] Built target G4PII
      ...
      -- Up-to-date: /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/include/Geant4/G4OpenGLStoredX.hh
      -- Up-to-date: /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/include/Geant4/G4OpenGLStoredXViewer.hh
      -- Up-to-date: /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/include/Geant4/G4OpenGLXViewer.hh
      $ 
    •  

  4. 環境変数の設定

    • Geant4 のプログラムを実行するには、その前に Geant4 をインストールしたディレクトリ内の bin/geant4.sh を実行し環境変数を設定する必要がある。
    • $ source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh
    • 毎回実行するのは面倒なので、普通は $HOME/.bashrc というファイル (シェルが起動したときに毎回実行されるシェルスクリプト) に source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh という行を書いておく。(ただし、使っているシェルが bash の場合。csh を使っている場合は、Google で書き方を調べる。) echo コマンドを用いて $HOME/.bashrc の最下部に書き込む場合は、以下のようなコマンドを実行する。
    • $ echo '#' >> $HOME/.bashrc
      $ echo '# Geant4 initialization' >> $HOME/.bashrc
      $ echo 'source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh' >> $HOME/.bashrc

Geant4 アンインストールと関連ファイルの削除

  • 上記のインストール方法の場合

    • 上記のインストール方法では、ソースの圧縮ファイル (geant4.9.5.p01.tar.gz)、ソース本体 (geant4.9.5.p01/)、Build ディレクトリ (geant4.9.5.p01-build/)、インストールディレクトリがすべて /home/koba/cern/geant4.9.5.p01 というディレクトリの中にまとまっている。よって、Geant4 のアンインストールと関連ファイルの削除をするには、/home/koba/cern/geant4.9.5.p01 ディレクトリを丸ごと削除すればよい。cern というディレクトリもいらなければ削除する。
    • $ rm -rf /home/koba/cern/geant4.9.5.p01
      ( cern ディレクトリも必要なければ、 $ rmdir /home/koba/cern )
    • さらに環境変数の設定の為に以下の行を .bashrc に書いた場合 (最下部に書いてあると思われる) 、これらの行も削除すれば、Geant4 インストール前の状態になる。
    • #
      # Geant4 initialization
      source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh
    • また、単に $ make install コマンドでインストールされたものを削除するには、$ make uninstall というコマンドを /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build ディレクトリ内で実行すればよい。/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install 内にインストールされたライブラリ、インクルードファイル、物理データなどが削除される。ただし、ディレクトリ (bin, include, lib など) は削除されない。/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build ディレクトリ内に作成されたファイルも削除されない。
    • $ cd /home/koba/cern/geant4.9.5.p01/togeant4.9.5.p01-build
      $ make uninstall
    •  

  • /usr/local にインストールした場合

    • cmake コマンド実行時に CMAKE_INSTALL_PREFIX を指定しない場合、 install 先は /usr/local ディレクトリになる。ここに install されたものを uninstall するには、# make install コマンドを実行した build ディレクトリ内で # make uninstall とすればよいはず。ただしソースファイルや build したものは削除されないので、手動で削除する。.bashrc に書いたinitialization の行も削除する。

Geant4 の再インストール

  • もっとも単純には、上記の "Geant4 アンインストールと関連ファイルの削除" を実行してから再び Geant4 をインストールすれば、Geant4 が再インストールされる。しかし、cmake のオプションを変えて再インストールしたい場合は、ソースファイルまで削除する必要はない。単に cmake を実行しなおして、make, make install をすればよいらしい?自分の場合は良くわからなかったので、build ディレクトリと install ディレクトリを削除してから、 build ディレクトリを作り直し cmake, make, make install をした。少なくとも、こうすれば確実に再インストールできるはず。
  • $ rm -rf /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
    $ rm -rf /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install
    $ mkdir -p /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
    $ cd /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
    $ cmake -DCMAKE_INSTALL_PREFIX=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01
    $ make -j4
    $ make install
  • ただし、上記の方法では build ディレクトリ内の data ディレクトリにある物理データ (make 時にダウンロードされるもの (cmake 時に-DGEANT4_INSTALL_DATA=ON というオプションを付けた場合)) まで削除される。物理データのダウンロードには時間がかかるため、このデータだけは残しておいても良いのかもしれない。このデータを残した場合、cmake 実行時に-DGEANT4_INSTALL_DATA=ON のオプションをはずす。その後、make, make install。ただしこの場合、物理データを参照する PATH を環境変数として自分で設定しなければいけない?以下のように書いておけばよいか?もしや、build 内に data ディレクトリを残しておけば、ダウンロードが始まらなかったりするんだろうか?後で調べる。
  • $ cd /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build
    $ ls
    data
    $ cmake -DCMAKE_INSTALL_PREFIX=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install -DGEANT4_USE_OPENGL_X11=ON /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01
    $ make -j4
    $ make install
    $ cp -r /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build/data /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/
    $ emacs $HOME/.bashrc
    
    以下の行の他に、
    #
    # Geant4 initialization
    source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh
    
    以下の行も書くのか?
    export G4LEVELGAMMADATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/PhotonEvaporation2.2
    export G4NEUTRONXSDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/G4NEUTRONXS1.1
    export G4LEDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/G4EMLOW6.23
    export G4NEUTRONHPDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/G4NDL4.0
    export G4RADIOACTIVEDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/RadioactiveDecay3.4
    export G4ABLADATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/G4ABLA3.0
    export G4PIIDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/G4PII1.3
    export G4REALSURFACEDATA=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/data/RealSurface1.0

サンプルプログラム (exampleB1) を動かす

  1. exampleB1 の make

    • まず、作業するための g4work というディレクトリと g4work/B1-build というディレクトリを作る。さらに、Geant4 の example ディレクトリから g4work ディレクトリに B1 をコピーしてくる。cmake で Makefile を作る。 Geant4_DIR には Geant4Config.cmake がなければならない。cmake 後、make する。

    • $ cd
      $ mkdir -p /home/koba/g4work/B1-build
      $ cp -r /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/examples/basic/B1 /home/koba/g4work
      $ cd /home/koba/g4work/B1-build
      $ cmake -DGeant4_DIR=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/lib/Geant4-9.5.1 /home/koba/g4work/B1
      $ make -j4
      Scanning dependencies of target exampleB1
      [ 16%] Building CXX object CMakeFiles/exampleB1.dir/exampleB1.cc.o
      [ 33%] Building CXX object CMakeFiles/exampleB1.dir/src/B1RunAction.cc.o
      [ 50%] Building CXX object CMakeFiles/exampleB1.dir/src/B1SteppingAction.cc.o
      [ 66%] Building CXX object CMakeFiles/exampleB1.dir/src/B1EventAction.cc.o
      [ 83%] Building CXX object CMakeFiles/exampleB1.dir/src/B1DetectorConstruction.cc.o
      [100%] Building CXX object CMakeFiles/exampleB1.dir/src/B1PrimaryGeneratorAction.cc.o
      Linking CXX executable exampleB1
      [100%] Built target exampleB1
    • cmake 時のメッセージはこれ

    •  

  2. exampleB1 実行

    • 次にコンパイルしたプログラムを実行する。まず環境変数を設定し(.bashrc に書いてあれば必要ない)、そのあと exampleB1 を実行する。
    • $ pwd
      /home/koba/g4work/B1-build
      $ source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh
      $ ./exampleB1
      
      *************************************************************
       Geant4 version Name: geant4-09-05-patch-01    (20-March-2012)
                            Copyright : Geant4 Collaboration
                            Reference : NIM A 506 (2003), 250-303
                                  WWW : http://cern.ch/geant4
      *************************************************************
      
      <<< Geant4 Physics List simulation engine: QGSP_BIC_EMY 1.1
      
      Checking overlaps for volume Envelope ... OK! 
      Checking overlaps for volume Shape1 ... OK! 
      Checking overlaps for volume Shape2 ... OK! 
      ### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
      Visualization Manager instantiating with verbosity "warnings (3)"...
      Visualization Manager initialising...
      Registering graphics systems...
      ...
    • 全メッセージはこれ。表示結果は下図。

    • alt exampleB1.png

exampleB1 の削除

  • exampleB1 を make する際、B1 ディレクトリのコピーと B1-build ディレクトリを作ったので、これらを削除すれば、exampleB1 を make する前の状態になる。g4work というディレクトリもいらなければ削除する。
  • $ rm -rf /home/koba/g4work/B1 /home/koba/g4work/B1-nuild
    $ g4work ディレクトリも必要なければ、 $ rmdir /home/koba/g4work )

Eclipse で Geant4 を Build

  • Eclipse を用いても Geant4 を build できるようだ。ただし clhep/src の Ranlux64Engine.cc の一部に警告が出る。また install は 端末上から行った。Eclipse 上でも出来るんだろうか?最終的にインストールされるライブラリは、Eclipse を使わず単に $ make, $make install したものと変わらないようだ。ただし、build ディレクトリ内の構造は違うかも?インストールに用いたコマンドと Eclipse の操作手順は以下の通り。前述の普通のインストール方法も参照。

  • $ mkdir -p /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build-eclipse
    $ cd /home/koba/cern/geant4.9.5.p01
    $ wget http://geant4.cern.ch/support/source/geant4.9.5.p01.tar.gz
    $ tar zxf geant4.9.5.p01.tar.gz
    $ cd /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build-eclipse
    $ cmake  -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install-eclipse -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01
    • cmake 時のメッセージはこれ

  • Eclipse CDT を実行し .project と .cproject ファイルを Import する。Eclipse CDT のバージョンは 4 以上でないとだめかも?自分の場合は最新版を Eclipse のページからダウンロードした。
    1. File -> Import を選択。

    2. General -> Existin Projects into Workspace を選択し [ Next > ] ボタンを押す。

    3. Select root directory: に /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build-eclipse を指定し、[ Finish ] ボタンを押す。
  • Project Explorer に Geant4-Release@geant4.9.5.p01-build という項目が表示される (Eclipse の初回起動時は、"ようこそ"的なメッセージを消さないと表示されないかも?)。

  • Geant4-Release@geant4.9.5.p01-build の上で右クリックし、Build Project を選択すると、コンパイルが開始される (ショートカットは Ctrl + b)。

  • /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build-eclipse ディレクトリ内にいろいろ出来る。
  • build が終わったら、端末で $ make install を実行する。
  • $ cd /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-build-eclipse
    $ make install
  • 最後に環境変数の設定を行えば終わり(前述の環境変数の設定を参照)。

Eclipse で exampleB1 を Build

  • Eclips を用いてサンプルプログラムの B1 を make (Build ?) する。この作業をする前に、Geant4 のライブラリがインストールされている必要があるが、Eclipse を用いて build したものでも、Makefile を使って make したものでも、どちらでも良い。まず、作業するための g4work というディレクトリと g4work/B1-build-eclipse というディレクトリを作る。さらに、example ディレクトリから g4work ディレクトリに B1 ディレクトリをコピーする。cmake で Eclipse 用の プロジェクトファイル (?) を作る。Geant4_DIR には Geant4 のライブラリをインストールしたディレクトリ (Geant4Config.cmake があるディレクトリ) を指定する。上に示したインストール手順の場合、Geant4 本体を Eclipse を使って build したときとしない時で、インストール場所を変更したので、Geant4_DIR の指定もそれに合わせる。Eclipse を使って Geant4 を build した場合、-DGeant4_DIR=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install-eclipse/lib/Geant4-9.5.1 を指定し、使わなかった場合、 -DGeant4_DIR=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/lib/Geant4-9.5.1 を指定すればよいはず。

  • $ cd
    $ mkdir -p /home/koba/g4work/B1-build-eclipse
    $ cp /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/examples/basic/B1 /home/koba/g4work
    $ cd /home/koba/g4work/B1-build-eclipse
    $ cmake -G"Eclipse CDT4 - Unix Makefiles" -DGeant4_DIR=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/lib/Geant4-9.5.1 /home/koba/g4work/B1
    • cmake 時のメッセージはこれ

  • Eclipse CDT を実行し .project と .cproject ファイルを Import する。Eclipse CDT のバージョンは 4 以上でないとだめかも?自分の場合は最新版のバイナリを Eclipse のページからダウンロードした。
    1. File -> Import を選択。

    2. General -> Existin Projects into Workspace を選択し [ Next > ] ボタンを押す。

    3. Select root directory: に /home/koba/g4work/B1-build-eclipse を指定し、[ Finish ] ボタンを押す。
  • Project Explorer に B1@B1-build-eclips という項目が表示される (Eclipse の初回起動時は、"ようこそ"的なメッセージを消さないと表示されないかも?)。
  • B1@B1-build-eclips の上で右クリックし、Build Project を選択すると、コンパイルが開始される。ショートカットは Ctrl + b。こういったショートカットは Google で検索をすればいろいろ出てくるはず。
  • 実行形式は、/home/koba/g4work/B1-build-eclipse ディレクトリに exampleB1 という名前で作成される。
  • Crtl + F11 で exampleB1 が実行可能 (端末からも $ ./exampleB1 で実行可能)。ただし、環境変数が設定された端末から起動した Eclipse でなければエラーとなる。

サンプルプログラム (exampleB1) を CMake を使わずコンパイル

  • CMake で Geant4 をインストールした場合でも、CMake で Makefile を作らず、従来の GNUMakefile を使ってサンプルプログラムをコンパイルすることが出来る。以下では B1 の例を示す。
  •  

  1. ディレクトリ作成

    • まず、作業するための g4work というディレクトリを作る。さらに、Geant4 の example ディレクトリから g4work ディレクトリに B1 をコピーしてくる。その後、B1 ディレクトリに移動。
    • $ mkdir -p /home/koba/g4work
      $ cp -r /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/examples/basic/B1 /home/koba/g4work
      $ cd /home/koba/g4work/B1
    •  

  2. 環境設定

    • さらに、環境変数を設定するために、以下のコマンドを実行。
    • $ source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/share/Geant4-9.5.1/geant4make/geant4make.sh
  3. exampleB1 の make

    • make コマンドで make 開始。これで、/home/koba/geant4_workdir/bin/Linux-g++ ディレクトリに、exampleB1 というバイナリが作成される。
    • $ make
      ...
      Creating shared library /home/koba/geant4_workdir/tmp/Linux-g++/exampleB1/libexampleB1.so ...
      Compiling exampleB1.cc ...
      Using global libraries ...
      Linking exampleB1
      ... Done!
    • 上記の環境変数の設定 ($ source ~~~ geant4make.sh の実行) をしないと、make 時に以下のようなエラーとなる。
    • GNUmakefile:17: ../../../config/binmake.gmk: そのようなファイルやディレクトリはありません
      make: *** ターゲット `../../../config/binmake.gmk' を make するルールがありません.  中止.
    •  

  4. exampleB1 実行

    • コンパイルしたプログラムを実行する。データファイル関連の環境変数を設定し(.bashrc に書いてあれば必要ない)、そのあと exampleB1 を実行する。具体的には、以下のコマンドを打てば良い。
    • $ source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh
      $ /home/koba/geant4_workdir/bin/Linux-g++/exampleB1
      
      *************************************************************
       Geant4 version Name: geant4-09-05-patch-01    (20-March-2012)
                            Copyright : Geant4 Collaboration
                            Reference : NIM A 506 (2003), 250-303
                                  WWW : http://cern.ch/geant4
      *************************************************************
      
      <<< Geant4 Physics List simulation engine: QGSP_BIC_EMY 1.1
      
      Checking overlaps for volume Envelope ... OK! 
      Checking overlaps for volume Shape1 ... OK! 
      Checking overlaps for volume Shape2 ... OK! 
      ### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
      Visualization Manager instantiating with verbosity "warnings (3)"...
      Visualization Manager initialising...
      Registering graphics systems...
    • exampleB1 は /home/koba/g4work/B1 ディレクトリ内で実行する。/home/koba/geant4_workdir/bin/Linux-g++/exampleB1 と打つのは面倒なので、通常は .bashrc に /home/koba/geant4_workdir/bin/Linux-g++/ への PATH を通し、exampleB1 を簡単に実行出きるようにしておく。具体的には、以下のようなコマンドを打てば良い。
    • $ echo '#' >> $HOME/.bashrc
      $ echo '# Geant4 binary PATH' >> $HOME/.bashrc
      $ echo 'export PATH=/home/koba/geant4_workdir/bin/Linux-g++:${PATH}' >> $HOME/.bashrc
      $ source $HOME/.bashrc
      $ exampleB1
      
      *************************************************************
       Geant4 version Name: geant4-09-05-patch-01    (20-March-2012)
                            Copyright : Geant4 Collaboration
                            Reference : NIM A 506 (2003), 250-303
                                  WWW : http://cern.ch/geant4
      *************************************************************
      ...
    • 上記の環境変数の設定($ source ~~~ geant4.sh の実行)をしないと、以下のようなエラーとなる。
    • $ /home/koba/geant4_workdir/bin/Linux-g++/exampleB1 
      /home/koba/geant4_workdir/bin/Linux-g++/exampleB1: error while loading shared libraries: libG4Tree.so: cannot open shared object file: No such file or directory
    • exampleB1 を /home/koba/g4work/B1 ディレクトリ以外で実行すると以下のようなエラーが出る。
    • [koba@nobu g4work]$  exampleB1
      
      *************************************************************
       Geant4 version Name: geant4-09-05-patch-01    (20-March-2012)
                            Copyright : Geant4 Collaboration
                            Reference : NIM A 506 (2003), 250-303
                                  WWW : http://cern.ch/geant4
      *************************************************************
      ...
      ***** Can not open a macro file <init_vis.mac>

サンプルプログラム (AnaEx02) を動かす (GNUMakefile を使用)

  • サンプルプログラム : examples/extended/analysis/AnaEx02 はシミュレーション結果を ROOT のライブラリを使って root ファイルに保存している。そのため、Geant4 に ROOT を組み込む際の参考になる。
  • Geant4.9.5.p01 の AnaEx02 では、 Makefile を CMake で作ろうとしてもうまくいかなかった。CMakeLists.txt がちゃんと書かれていないっぽい? CMake で Makefile を作らず、従来の GNUMakefile を使うと make できた(実際の手順は上記のサンプルプログラム (exampleB1) を CMake を使わずコンパイルとほぼ同じようになった)。ただし、GNUMakefile 内 17 行目の G4ANALYSIS_USE := true の行を有効にしてコンパイルしないと、プログラムを実行した時に root ファイルが出力されない(下記参照)。

    • #### G4ANALYSIS_USE := true                                                     
      
      ↓↓↓ 変更 ↓↓↓
      
      G4ANALYSIS_USE := true
  • コンパイル時に "aida-config: コマンドが見つかりません" というメッセージが出るが気にしない。
    • Making dependency for file AnaEx02.cc ...
      /bin/sh: line 1: aida-config: コマンドが見つかりません
      Making dependency for file src/SteppingAction.cc ...
      /bin/sh: line 1: aida-config: コマンドが見つかりません
      
      ...
      
      Creating shared library /home/koba/geant4_workdir/tmp/Linux-g++/AnaEx02/libAnaEx02.so ...
      Compiling AnaEx02.cc ...
      /bin/sh: aida-config: コマンドが見つかりません
      Using global libraries ...
      Linking AnaEx02
      /bin/sh: aida-config: コマンドが見つかりません
      /bin/sh: aida-config: コマンドが見つかりません
      ... Done!
  • Geant4.9.6.p02 ではこのメッセージは出ない。そもそも GNUMakefile 内に G4ANALYSIS_USE := true という行はなく、設定する必要がなくなった。一方、GNUMakefile 内で G4INSTALL として geant4.9.6.p02.tar.gz を展開したときにできたディレクトリを指定する必要がある(下記参照)。
    • ifndef G4INSTALL
        G4INSTALL = ../../..
      endif
      
      ↓↓↓ 変更 ↓↓↓
      
      #ifndef G4INSTALL
      #  G4INSTALL = ../../..
      #endif
      
      G4INSTALL = /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02
  • その後、$ make setup と打ちファイルをコピーしてから、 make する。
    • $ cd AnaEx02
      $ make setup
      $ make
  • GNUMakefile 内で G4INSTALL の指定が間違っていると、ファイルをコピーするための $ make setup コマンドが正しく動かない(下記参照)。
    • $ make setup
      Copying files from common
      make: /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02-install/share/Geant4-9.6.2/geant4make/examples/extended/common/scripts/copy_files.sh: コマンドが見つかりませんでした
      make: *** [setup] エラー 127
  • コンパイルしたプログラムを実行する。データファイル関連の環境変数を設定し(.bashrc に書いてあれば必要ない)、そのあと AnaEx02 を実行する。具体的には、以下のコマンドを打てば良い。

    • $ source /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02-install/bin/geant4.sh
      $ /home/koba/geant4_workdir/bin/Linux-g++/AnaEx02 run.mac
  • 環境変数などを設定したい場合は、サンプルプログラム (exampleB1) を CMake を使わずコンパイル を参考にする。

サンプルプログラム (AnaEx02) を動かす (CMake を使用)

  • Geant4.9.6.p02 では CMake コマンドを使ってちゃんと Makefile を作ることが出来る。ROOT がインストールされている必要がありそうだが、CMake 時に ROOT のパスを指定するようなことはなかった(なんでこれでよいんだろう?)。手順は以下の通り(64 bit 環境の場合)。
  •  

  1. make

    • まず、作業するための g4work というディレクトリとその中に AnaEx02-build というディレクトリを作る。さらに、Geant4 の example ディレクトリから g4work ディレクトリに AnaEx02 と shared ディレクトリをコピーしてくる。cmake コマンドで Makefile を作る。cmake 後、make する。

    • $ cd
      $ mkdir -p /home/koba/g4work/AnaEx02-build
      $ cp -r /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02/examples/extended/analysis/AnaEx02 /home/koba/g4work
      $ cp -r /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02/examples/extended/analysis/shared /home/koba/g4work
      $ cd /home/koba/g4work/AnaEx02-build
      $ cmake -DGeant4_DIR=/home/koba/cern/geant4.9.6.p02/geant4.9.6.p02-install/lib64/Geant4-9.6.2 /home/koba/g4work/AnaEx02
      $ make -j4
    • cmake 時のメッセージはこれ。make 時のメッセージはこれ

    • cmake の -DGeant4_DIR には、Geant4Config.cmake があるディレクトリを指定する。64 bit 環境の場合、~~~lib64/Geant4-9.5.1 ディレクトリとなる。32 bit 環境だと、~~~lib/Geant4-9.5.1 ディレクトリ となる。ここを間違えると、cmake で以下のようなメッセージが表示され、make をしても何も起こらない。

    • ...
      -- G4 Examples: ROOT package not found. --> AnaEx02 example disabled
      ...
    • -DGeant4_DIR が間違っている場合の cmake 時のメッセージはこれ

    •  

  2. AnaEx02 実行

    • コンパイルしたプログラムを実行する。まず環境変数を設定し(.bashrc に書いてあれば必要ない)、そのあと AnaEx02 を実行する。これで、AnaEx02.root という root ファイルが出来る。

    • $ pwd
      /home/koba/g4work/AnaEx02-build
      $ source /home/koba/cern/geant4.9.6.p02/geant4.9.6.p02-install/bin/geant4.sh
      $ ./AnaEx02 run.mac
      ...
    • 全メッセージはこれ

    •  

  3. root ファイル表示

    • 上記の root ファイルを表示するマクロ plotHisto.C が /home/koba/g4work/AnaEx02 ディレクトリ内にあるので、これを使ってヒストグラムを表示する。
    • $ pwd
      /home/koba/g4work/AnaEx02-build
      $ root -l /home/koba/g4work/AnaEx02/plotHisto.C
      root [0] 
      Processing /home/koba/g4work/AnaEx02/plotHisto.C...
      root [1] .q
      $
    • 表示結果は下図。
    • alt AnaEx02Hist.png

エラー集

  • CMake 実行時

    • CMake 2.6 で GEANT4_INSTALL_DATA のオプションを付けると、以下のようなエラーとなる。cmake 実行時に GEANT4_INSTALL_DATA のオプションを付けたい場合、 2.8 以上のバージョンでなければならない(2.3. Geant4 Build Options - GEANT4_INSTALL_DATAに書いてある)。CMake のインストール方法はこちら。Scientific Linux CERN 5.5 の yum で CMake を インストール すると、CMake 2.6.4 がインストールされる。

    • $ cmake -DCMAKE_INSTALL_PREFIX=/home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01
      -- setting default compiler flags for CXX
      CMake Error at cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake:248 (_g4tc_setenv_command):
        _g4tc_setenv_command Function invoked with incorrect arguments for function
        named: _g4tc_setenv_command
      Call Stack (most recent call first):
        cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake:406 (_g4tc_configure_tc_variables)
        cmake/Modules/Geant4ToolchainBackwardCompatibility.cmake:486 (_g4tc_configure_build_tree_scripts)
        CMakeLists.txt:116 (include)
      
      ...
      
      -- The following Geant4 features are enabled:
      GEANT4_USE_SYSTEM_EXPAT: Using system install of EXPAT
      GEANT4_USE_OPENGL_X11: Build Geant4 OpenGL driver with X11 support
      
      -- Configuring incomplete, errors occurred!
    •  

  • exampleB1 実行時

    • 環境変数の設定がちゃんとできていない場合、以下のようなメッセージが出る。exampleB1 実行 の前に geant4.sh を実行すれば良い (source /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01-install/bin/geant4.sh)。
    •  $ ./exampleB1 
      
      *************************************************************
       Geant4 version Name: geant4-09-05-patch-01    (20-March-2012)
                            Copyright : Geant4 Collaboration
                            Reference : NIM A 506 (2003), 250-303
                                  WWW : http://cern.ch/geant4
      *************************************************************
      
      
      -------- EEEE ------- G4Exception-START -------- EEEE -------
      *** G4Exception : PhysicsLists002
            issued by : G4DataQuestionaire
      
      Low energy electromagnetic data are needed.
      This is a NEW requirement for standard EM physics since geant4 9.5.
      Please set the environmental variable G4LEDATA
      to point to your G4EMLOW directory. 
      Note: EMLOW6.23 or above is needed for Bremsstrahlung data.
      Data are available from the Geant4 download page.
      
      Photon-evaporation data are needed.
      Please set the environmental variable G4LEVELGAMMADATA
      to point to your PhotonEvaporation directory.
      Data are available from the Geant4 download page.
      
      *** Fatal error: Missing mandatory data for this simulation engine ***
      
      *** Fatal Exception *** core dump ***
      -------- EEEE -------- G4Exception-END --------- EEEE -------
      
      
      *** G4Exception: Aborting execution ***
      アボート
    •  

  • GLX ライブラリ使用時のエラー

    • X 関連のライブラリの再インストールを行った後、Geant4 のプログラム (exampleB1) を実行すると以下のようなエラーが出ることがある。
    • # Use this open statement to create an OpenGL view:
      /vis/open OGL 600x600-0+0
      /vis/sceneHandler/create OGL
      /vis/viewer/create ! ! 600x600-0+0
      
      G4OpenGLViewer::G4OpenGLViewer couldn't create context.
      
      X Error of failed request:  BadMatch (invalid parameter attributes)
        Major opcode of failed request:  1 (X_CreateWindow)
        Serial number of failed request:  ?
        Current serial number in output stream:  ?
    • また、VRMLview を実行すると、以下のエラーが出る。
    • $ vrmlview g4_00.wrl
      QGLContext::makeCurrent(): Cannot make invalid context current.
      QGLContext::makeCurrent(): Cannot make invalid context current.
      ...
    • このような場合、glxgears というコマンドでベンチマークをしてみると、以下のエラーが出る。おそらく、X 関連のライブラリの再インストール時に libglx.so というライブラリが xorg 付属の物に上書きされたことが原因であると考えられる。(参考 : glXCreateContext failed)。

    • $ glxgears
      Error: glXCreateContext failed
    • 対処

    • nVidia のドライバをインストールし直したら glxgears が実行できた。exampleB1 も実行できるようになった。
    • $ glxgears
      25042 frames in 5.0 seconds = 5008.338 FPS
      25415 frames in 5.0 seconds = 5082.979 FPS
      ,,,
    • glxgears.png

    • また、nVidia のドライバを再インストールしなくても、シンボリックリンクを作ることで解決できる。/usr/lib/xorg/modules/extensions ディレクトリを見ると、おそらく libglx.so, libglx.so.256.53 というファイルがあるはず。この場合、libglx.so のバックアップを作り、libglx.so から libglx.so.256.53 へのシンボリックリンクを作る。その後、X を再起動 (ログオフして再ログイン) すると、glxgears が正しく実行でき、VRMLview も見られるようになった。X を再起動しない場合、 glxgears は動かなかった。
    • $ su
      パスワード:
      # cd /usr/lib/xorg/modules/extensions
      # ls -l
      ...
      -rwxr-xr-x 1 root root  488312 10月  5 18:24 libglx.so*
      -rwxr-xr-x 1 root root 3210992  8月 29 18:33 libglx.so.256.53*
      ...
      # mv libglx.so libglx.so.org
      # ln -s libglx.so.256.53 libglx.so
      # ls -l
      ...
      lrwxrwxrwx 1 root root      16 10月 16 16:56 libglx.so -> libglx.so.256.53
      -rwxr-xr-x 1 root root 3210992  8月 29 18:33 libglx.so.256.53
      -rwxr-xr-x 1 root root  488312 10月  5 18:24 libglx.so.org
      ...
    •  

  • vrmlview 実行時 の error

    • これは他の環境において生じたエラーであるが、nvidia のドライバー関連のライブラリを入れてから発生したと思われるエラー。ドライバーを入れた時に、/etc/X11/xorg.conf が書き換えられたか? $ glxgears コマンドでベンチマークをしても同じエラーが出る。
    • Xlib:  extension "GLX" missing on display ":0.0".
      Error: couldn't get an RGB, Double-buffered visual
    • 対処

    • /etc/X11/xorg.conf において、 /usr/lib64/xorg/modules/extensions/libglx.so へのパスがちゃんと通っているか確認。この環境では nvidia のドライバを使用していないのに、ModulePath "/usr/lib/xorg/modules/extensions/nvidia" の部分が優先されていた為、この行をコメントアウトした (下記参照)。(参考:Vine Linux で Geomview を使う) これにより /usr/lib/xorg/modules/extensions/nvidia/libglx.so ではなく、/usr/lib/xorg/modules/extensions/libglx.so を参照するようになる。編集後、X を再起動 (ログオフして再ログイン) すると glxgears が正しく実行できた。

    •    Section "Files"
         #       ModulePath   "/usr/lib64/xorg/modules/extensions/nvidia"
                 ModulePath   "/usr/lib64/xorg/modules/extensions"
                 ModulePath   "/usr/lib64/xorg/modules"
         EndSection
    •  

  • コンパイラがない

    • gcc と g++ コンパイラがない場合、cmake 時に以下のようなエラーが出る。
    • $ cmake なんとかかんとか
      -- The C compiler identification is unknown
      -- The CXX compiler identification is unknown
      -- setting default compiler flags for CXX
      CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
      CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
      CMake Warning (dev) at cmake/Modules/Geant4InstallDirs.cmake:110 (message):
        Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
        target architecture is known.  Please enable at least one language before
        including GNUInstallDirs.
      Call Stack (most recent call first):
        CMakeLists.txt:73 (include)
      This warning is for project developers.  Use -Wno-dev to suppress it.
      
      -- Could NOT find EXPAT (missing:  EXPAT_LIBRARY EXPAT_INCLUDE_DIR) 
      CMake Error at /usr/local/share/cmake-2.8/Modules/FindX11.cmake:420 (MESSAGE):
        Could not find X11
      Call Stack (most recent call first):
        cmake/Modules/Geant4InterfaceOptions.cmake:132 (find_package)
        CMakeLists.txt:84 (include)
      
      
      -- Configuring incomplete, errors occurred!
    • $ cmake なんとかかんとか
      -- The C compiler identification is GNU 4.4.6
      -- The CXX compiler identification is unknown
      ...
      -- setting default compiler flags for CXX
      CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
      ...
      -- Configuring incomplete, errors occurred!
    • 対処

    • 以下のコマンドで"開発ツール"のパッケージグループをインストールすれば良い。
    • $ su
      パスワード:
      # yum groupinstall "Development tools"
    • また、個別に gcc と g++ コンパイラのパッケージをインストールしても良い。
    • $ su
      パスワード:
      # yum install gcc gcc-c++
    •  

  • X11 関連のライブラリがない

    • X11 関連のライブラリやヘッダファイルがない場合、cmake 時に以下のようなエラーが出る。(以下のエラーは、Scinentific Linux 6.3 64bit の場合。)
    • $ cmake なんとかかんとか
      ...
      -- Detecting CXX compiler ABI info - done
      -- Could NOT find EXPAT (missing:  EXPAT_LIBRARY EXPAT_INCLUDE_DIR) 
      CMake Error at /usr/local/share/cmake-2.8/Modules/FindX11.cmake:420 (MESSAGE):
        Could not find X11
      Call Stack (most recent call first):
        cmake/Modules/Geant4InterfaceOptions.cmake:132 (find_package)
        CMakeLists.txt:84 (include)
      
      -- Configuring incomplete, errors occurred!
    • $ cmake なんとかかんとか
      ...
      -- Found X11: /usr/lib64/libX11.so
      CMake Error at cmake/Modules/Geant4InterfaceOptions.cmake:172 (message):
        could not find X11 Xt library and/or headers
      Call Stack (most recent call first):
        CMakeLists.txt:84 (include)
      
      -- Configuring incomplete, errors occurred!
    • $ cmake なんとかかんとか
      ...
      -- Looking for IceConnectionNumber in ICE - found
      CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):
        Could NOT find OpenGL (missing: OPENGL_gl_LIBRARY)
      Call Stack (most recent call first):
        /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE)
        /usr/local/share/cmake-2.8/Modules/FindOpenGL.cmake:153 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
        cmake/Modules/Geant4InterfaceOptions.cmake:188 (find_package)
        CMakeLists.txt:84 (include)
      
      -- Configuring incomplete, errors occurred!
    • $ cmake なんとかかんとか
      ...
      GEANT4_USE_OPENGL_X11: Build Geant4 OpenGL driver with X11 support
      GEANT4_INSTALL_DATA: Will download and install data libraries
      
      CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
      Please set them or make sure they are set and tested correctly in the CMake files:
      X11_Xmu_INCLUDE_PATH (ADVANCED)
         used as include directory in directory /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/source/visualization/OpenGL
      X11_Xmu_LIBRARY (ADVANCED)
          linked by target "G4OpenGL" in directory /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/source/visualization/OpenGL
          linked by target "G4OpenGL" in directory /home/koba/cern/geant4.9.5.p01/geant4.9.5.p01/source/visualization/OpenGL
      
      -- Configuring incomplete, errors occurred!
    • 対処

    • X11 関連のライブラリが含まれる、以下のパッケージが必要。これらをインストールすると、依存関係によって他の必要なパッケージもインストールされる。
      • libX11-devel
      • libXt-devel
      • mesa-libGL-devel
      • libXmu-devel
    • Scientific Linux 6 の場合、"デスクトッププラットフォーム環境"というパッケージグループをインストールすれば良い。
    • $ su
      パスワード:
      # yum groupinstall "Desktop Platform Development"
      以下のように日本語での指定も可能
      # yum groupinstall "デスクトッププラットフォーム開発"
    • Scientific Linux 5 の場合、"X ソフトウェア開発"というパッケージグループをインストールすれば良い。
    • $ su
      パスワード:
      # yum groupinstall "X Software Development"
      以下のように日本語での指定も可能("X ソフトウェア開発"の空白は全角(いや半角?)なので注意)
      # yum groupinstall "X ソフトウェア開発"
    • また、以下のように個別にパッケージをインストールしても良い。
    • $ su
      パスワード:
      # yum install libX11-devel libXt-devel mesa-libGL-devel libXmu-devel