まず、どこに置いておけばいいか分からない。 そして、どこにインストールされるのだろう?3種類あるうちGNU tarというやつを、 『~/TMP/GEANT4/』というディレクトリを作って、そこへ置いた。 はじめ、IEでダウンロードしていたが、Geant本体約12MBのはずが 50MB超えても延々ダウンロードが続いてる! 慌てて切断し、Cygwin上にデフォルトでインストールされた lynxでダウンロードした。
ところで、GNU tarであるかどうかってどう確かめる?今日はここまで。 (2003.12.22)
$ tar zxvf geant4.6.0.gtar.gzこうすれば、元のアーカイバ
*.gz
を変えないので保守が便利。
(2003.12.25)
一、C++コンパイラ(Unixはg++、WindowsはVisual C++)このことは、継続して調査中。
二、CLHEPライブラリCLHEP - A Class Library for High Energy Physics 直訳すると『高エネルギー物理学のための“クラス”のライブラリ』な訳ですな。 これまでは、ぼんやりとしか分からなかったが、今回少し 齧った ので、C++の用語である“クラス”と思えば頭に入りやすい。
$ mkdir clhep
$ mv clhep-1.8.1.0.tgz clhep
$ cd clhep/
$ tar -zxvf clhep-1.8.1.0.tgz
$ cd 1.8.1.0/CLHEP/
$ export CXX=g++ (←よけいみたいだ。コンパイラがCCになってしまうが…)
⇒必要!
$ ./configure (出来た『Makefile』はいじらない)
$ make check
コンパイルは通ったようだが
テストでエラー!
(2003.12.26)同じことをWindows2000でもやってみたが、 さいごやはりtestのコンパイルで(?)うまくいかない。 少しきちんと時間をかける必要あり。 (2003.12.29)
[XP]CLHEPリベンジ
年末年始に入り、XPでCLHEPリベンジ。 “$ export CXX=g++
”を行なうことと、 “出来たMakefileはいじらない”ことに気をつけたら、 昨日と同じ手順で、あっさり成功。これで入ったのは次のとおり。
$ make check
…
All tests passed.なお、
- /usr/local/include/CLHEP/以下のヘッダファイル群
- /usr/local/libに入った1つのライブラリファイル
libCLHEP-g++.1.8.1.0.a
等は失敗する。 (2003.12.28)
- $ make classdoc
- $ make install_manpages
$ make check | tee log200312291003.txt
”
…⇒無事“All tests passed.
”!
事前に“$ make clean
”したことくらいかなぁ、違いは。
めでたく“$ make install
”。
(2003.12.30)三、Native STLg++関連で元々入ってんだよねぇ?分からん。
四、GNU Makeこれも、そもそもCygwinってGNU環境なんだから、makeったら GNU Makeのことだろーが。manページにも書いてある。
$ gmake
”というふうに書かれてる。
エラーの報告文も、“ターゲットがない”とか、
『Makefile
』がないような感じの出方がしている。
それで、ソースファイルのあるディレクトリを覘いてみると、
『Makefile
』はなく『GMUmakefile
』が存在する
ということが分かった。
ふーむ、そもそも、gmakeというようなコマンドはないし、
どうしようかな?つまり、gmakeって、
“$ make --makefile=GNUmakefile
”
とやったような動作をすればいいんだよな?
また、そもそも./Configure
がきちんとディレクトリを
見ていない感じもする。
インストールガイドにも、“$G4INSTALL
(標準的には
~/geant4
)から
「$ ./Configure -install
」を実行せよ”
というような書き方をしている。$ tar -zxvf geant4.6.0.gtar.gz
”を実行して
出来たgeant4.6.0
ディレクトリの中にある
全てのファイル・サブディレクトリを~/geant4/
へコピー。
$ tar -zxvf geant4.6.0.gtar.gz $ cd geant4.6.0 $ tar cf - . | (cd ~/geant4; tar vxf -) $ cd .. $ rm -rf geant4.6.0
config/liblist.c
でこけた。[XP]Configure関連スクリプトの訂正
結局、~/geant460gpp/Configure
が原因ではなかった。 ただし、一箇所、ログには残らないエラーが次のように発生している。原因究明は継続するが、これは現時点ではペンディング。 今後問題になれば要解決。Creating configuration setup file... sed: config.shを読み込めません: No such file or directory sed: config.shを読み込めません: No such file or directory Hmm...You had some extra variables I don't know about... I'll try to keep 'em... Propagating previous variable $Author... Propagating previous variable $CONFIG... Propagating previous variable $Date... …
最終的なエラー表示は次のとおり。これは、############################################################ # It looks like you had errors during Geant4 installation # # (or interrupted installation)! # # Please check log file: # …~/geant460gpp/.config/bin/WIN32-g++/install.sh
の実行中に起こるが、このスクリプトはConfigureプロセスの過程においては、~/geant460gpp/config/scripts/install.sh.SH
から毎回自動生成されるので、訂正すべきは後者である。
install.sh.SH
で上記のエラーの判定条件は次のようになっている。これにはいろいろ問題があって、書き換えた。# Check for errors in log file export err=\$[ \`grep Error $g4conf/g4make.log | wc -w\` ] export int=\$[ \`grep Stop\. $g4conf/g4make.log | wc -w\` ] … if [ X\$err = X0 -a X\$int = X0 ] ; then …
まず、wcの出力は、値がたとえ『0』でも、 『 (空白6個)0』となるようなので、 if文の中の論理式が偽になってしまう。 (そもそもgrepの使い方が変ではないか? これでは、ファイル名の一部に“Error”がある場合は コンパイルが成功してもエラーにカウントしてしまう。 また、“Stop\.”は『""』で囲わないと思ったとおりの動作をしない。) 多分、先頭空白処理として導入されておるであろう“$[ … ]
”は (コマンドラインではうまくいくのだが)、 スクリプト動作としてはうまくいかないので、 姑息だが次のようにしてみた。geant4.6.2p01では、上2行は全く同じに修正されていた。(2004.9.9確認)… err1=\`grep Error $g4conf/g4make.log | wc -w\` int1=\`grep "Stop\." $g4conf/g4make.log | wc -w\` export err="\`echo \${err1}\`" export int="\`echo \${int1}\`" …
この訂正により最終判定はパスして、 次のようにインストールが成功したように表示されるようになる。しかし、その後#################################################### # Your Geant4 installation seems to be successful! # # To be sure please have a look into the log file: # …~/geant460gpp/Configure
を実行した際にまだ、が出ていることを見ると、 “インストール”が完了しているようには見えていない のだろう。 はたして、どういう状態になっていれば 『インストール完了状態』 といっていいのだろう? 要継続調査。 (2004.01.10)WARNING: Geant4 is NOT installed yet! You (or the administrator if you have not enough privileges) should start with $G4INSTALL/Configure -install. (where $G4INSTALL is Geant4 install directory).
[2k]【追記】環境変数メモ
コマンドラインから打ち込んで設定した環境変数。(2004.01.13)$ export G4SYSTEM="WIN32-g++" $ export G4INSTALL="/home/(ユーザ名)/geant460gpp" $ export G4WORKDIR="/home/(ユーザ名)/geant460gpp" $ export CLHEP_BASE_DIR="/usr/local"
dawn.exe
として扱う箇所と、
dawn
という名前として扱う箇所を明確に区別すること。
(2003.12.29)[2k]
☆X11やOpenGLがうまくいかない場合は、XFree86関係をインストールし直す。 ### OpenGL lib directory OPENGL_LIB = -L/usr/X11R6/lib ### OpenGL include directory OPENGL_INC = -I/usr/X11R6/include OPENGL_INC += -I/usr/X11R6/include/GL ☆Windows環境のポイント > EXEC_EXE = $(EXEC).exe ☆stripコマンドとcpコマンドは拡張子が必要 < strip $(EXEC) < cp $(EXEC) ./$(PRIM_DATA_DIR) --- > strip $(EXEC_EXE) > cp $(EXEC_EXE) ./$(PRIM_DATA_DIR) ☆同上 < strip $(G4TEST_INET) --- > strip $(G4TEST_INET).exe ☆同上 < strip $(G4TEST_UNIX) --- > strip $(G4TEST_UNIX).exe ☆拡張子付のファイルの扱いを付加 < rm -f $(EXEC) a.out --- > rm -f $(EXEC) a.out $(EXEC_EXE) ☆同上 > rm -f $(EXEC_EXE) ./$(PRIM_DATA_DIR)/$(EXEC_EXE) ☆同上 > rm -f $(G4TEST_INET).exe $(G4TEST_UNIX).exe ☆インストール時におけるcpコマンド < cp -p ./$(EXEC) $(INSTALL_DIR)/$(EXEC) --- > cp -p ./$(EXEC_EXE) $(INSTALL_DIR)/$(EXEC_EXE)(2004.01.08)
OpenGLの指定をちゃんとしとかないと、 レンダリングの結果の*.eps
ファイルが出てこない。 (上記の赤字部分を追記。)
で、これを見る方法。
(2004.01.13)
- Adobe AcrobatでPDFへ変換してしまう。
;手っ取り早いし設定の面倒がないけど、 そのマシンにインストールされてなければ使えない。 ライセンス費用の問題- startx活用。
/bin/gs(≡/usr/bin/gs)をリネームし、which gs
した時に/usr/X11R6/bin/gs
となるようにする。
;Xサーバを立ち上げるのは多少面倒。これが本来の動作。- gswin32導入。
Windows版のghostscriptを拾ってくる。 (たとえばpTeX関係のこのページから得た。) ;うまくリンクを張ればコマンドラインから絵を飛ばせる。 毎度、“$ gv: Unable to open the display.”が出るのが気持ち悪い。
cd
して行けば、
make
と打ち込むだけでビルドしてくれる。$ export CPPVERBOSE=1
”等を切り替える。
-lCLHEPが見つからない
”
と言われてリンクできない。
$ ln -s /usr/local/lib/libCLHEP-g++.1.8.2.0.a /usr/local/lib/libCLHEP.a
CLHEP_BASE_DIR=C:\Clhep
とかしようと思ったら、
$ tar -zxvf clhep-1.8.1.0-win32-vc7.tgz -C /cygdrive/c/Clhepなどとやればいいのだが、今回はこのような分かりやすいPATHは不要のようであった。)
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
を加えた。
(2004.01.19)geant4-setup.sh
」、「vsvars7.sh
」等の修正geant4-setup.sh
。
< export CLHEP_BASE_DIR=C:/Clhep --- > FUT_DOWNLOAD_DIR="C:/futami/Geant4/src_for_WIN32" > CLHEP_BASE_DIR="${FUT_DOWNLOAD_DIR}/clhep/CLHEP/1.8.1.0" > export CLHEP_BASE_DIR > unset FUT_DOWNLOAD_DIR > G4INSTALL="C:/g4/geant4_6_0" > export G4INSTALL
vsvars7.sh
。
※注)ここで、環境変数 (< FrameworkDir="c:\WINDOWS\Microsoft.NET\Framework" < FrameworkVersion="v1.0.3705" < FrameworkSDKDir="c:\Program Files\Microsoft Visual Studio .NET 2003\FrameworkSDK" --- > FrameworkDir="C:\WINNT\Microsoft.NET\Framework" > FrameworkVersion="v1.1.4322" > FrameworkSDKDir="C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1" > export PATH < LIB="$LIB;$MSVCDir\PlatformSDK\lib\prerelease" --- > LIB="$LIB;$MSVCDir\PlatformSDK\Lib\prerelease"
G4INSTALL
,CLHEP_BASE_DIR
)
の記述の仕方が、
完全にCygwinのやり方(/cygdrive/c/g4/…
)ではなく、
また、完全にWindowsのやり方(C:\g4\…
)でもない、
両者が混ざった方法
C:/g4/…
であることに注意する。
そのように書かないと、
CygwinかVC7か
どちらかの体系でひっかかる。geant4-setup.sh
とvsvars7.sh
は
${G4INSTALL}/sourceディレクトリへコピーする。$ . geant4-setup.sh
$ . vsvars7.sh
$ make
libG4*.a
とlibG4*.pdb
)
428MBが生成された。
(2004.01.20)