人気ブログランキング | 話題のタグを見る

Meepのインストール (1) Cygwin環境構築

アンテナや光導波路の挙動をシミュレーションするための電磁場計算として、FDTD(finite-difference time-domain)という手法があります。

市販のソフトを買うと十万円以上はするらしいのですが、Unix上で動作するMeepというソフトは無償で配布されています。

Cygwin環境でこのソフトを動作させる事に成功したので、覚え書きを兼ねてここに書いておく事にします。色々と細かい設定などがあり、動作するところまでこぎ着けるのにかなり苦労しました。

(1) Cygwinのインストール

まず、こちらのページからCygwinのインストーラ (setup.exe) をダウンロードします。この中にCygwin本体は含まれていません。

Internet Explorerを使った場合setup.exeを保存せずそのまま実行する事も出来ますが、たぶん繰り返し事項する事になるのでご自分のPCに保存しておいた方がよいでしょう。

インストールの詳細については、他のページに詳しく載ってますので(例えばこちら)ここでは省略します。

注意点
・ "Select Root Install Directory"の画面で、右下にある"Default Text File Type"はUnixを選択する。Dosを選ぶと、後でコンパイルする際エラーが起きます。
・ ダウンロードサイトはレスポンスの早いところを選択しましょう。.jpで終わる国内のサーバを選ぶのが無難です。
・ インストールするパッケージとして、Devel, Editors, Libs, Math, Mingwは必ず選択します。(その他も含めて全部のパッケージを選択してもかまいませんが、ダウンロードの時間とディスク容量が必要になります。)
・ Guileというソフトが含まれますが、最新の1.8.1-6では後でlibctlをインストールする際に失敗しました。右上にある[View]と書かれたボタンを押してその右の表示をFullに切り替えます。(このボタンを押すごとに表示が切り替わり、何回目かで元に戻ります。)Package列がアルファベット順に並んでますから、guileで始まるものを探し(3つあります)New列の回転矢印記号を何回か押して、これらのバージョンを1.6.7-4に切り替えます。guile-develについてはSrc?列にもチェックを入れソースファイルもインストールします。
・ 同じ要領で、Shellsパッケージ中のtcshとrxvtもインストールしておくと便利です。(以後、インストールされているとして説明を続けます。)


(2) 環境設定

こうしてインストールした状態でCygwinを起動すると、コンソールウインドウが現れます。(終了するには、このウインドウ内で"exit"とコマンドを入力するか、ウインドウ自体を閉じる。)このウインドウはマウスのスクロールボタンや、マウス操作による文字列の選択が無効なので、若干不便です。
そこで、メモ帳などを使って次の様な内容のバッチファイルを作り、C:\cygwin\cygwin-tcsh.batという名前で保存します。

@echo off
C:\cygwin\bin\rxvt.exe -fg white -bg black -fn msgothic-12 -fm msgothic-12 -e tcsh -l


"C:\cygwin"の部分は、Cygwinをインストールしたドライブやフォルダに応じて変えて下さい。
このバッチファイルのショートカットを作製し、使いやすいところ(デスクトップなど)に移動させます。

ここから先、Cygwinを起動してUnix環境での作業になります。
先ほど作製したショートカットから、Cygwinを起動します。

環境変数を設定するため、テキストエディタを起動して設定ファイル".tcshrc"を作製します。ここでは、nanoというエディタを使います。
Cygwinコンソール内で次の様に入力して下さい。

>nano .tcshrc

すると、コンソール内がテキストエディタ画面に切り替わります。
そこに、次の様に入力して下さい。

setenv LD_LIBRARY_PATH "/usr/local/lib"
setenv LDFLAGS "-L/usr/local/lib"
setenv CPPFLAGS "-I/usr/local/include"
setenv F9X "/usr/local/bin/g95"


正しく入力出来たら、キーボードのCtrlキーを押しながらOを押します。(画面下部に書かれている ^O WriteOut の操作です。その後でCtrlとX (^X)を押すとnanoが終了します。
Unixのコンソールに戻るので、

> ls -a

と入力してみて下さい。表示されたファイル一覧の中に".tcshrc"がある事を確認して下さい。
ここで一旦Cygwinを終了します。
再びショートカットからCygwinを起動し、コンソール内で次のコマンドを入力して下さい。

>setenv

環境変数が沢山表示されますが、その中に先ほど入力した内容が含まれている事を確認して下さい。
以上で、環境設定は終了です。何故この様な設定が必要か、詳細はMeep Installationのページに書かれています。
また、Unixの基本的なコマンドについては他のページ(例えばここ)を参考にして下さい。

(3) コンパイラのコピー
これはMeepのコンパイル時に発生するエラーを回避するための手続きです。なお、2007年7月に次のバージョンのソフト使用環境であった事にご留意下さい。

Cygwin.dll-1.5.24-2
hdf5-1.8.0-beta2
szip-2.0
libctl-3.0.2
zlib-1.2.1
harminv-1.3.1
meep-0.10

先ず、Windowsのエクスプローラなどで、
c:\cygwin\usr\lib\gcc\i686-pc-cygwin\3.4.4
というフォルダが存在するか調べて下さい。たぶん、gcc 以下のフォルダは無いと思います。
代わりに
c:\cygwin\lib\gcc\i686-pc-cygwin\3.4.4
があるはずです。(例によって、c:\cygwinの部分はCygwinをインストールしたフォルダに変えて下さい。)

この場合、エクスプローラなど用いて
c:\cygwin\lib\gcc
をフォルダごと
c:\cygwin\usr
へコピーして下さい。
次に、Cygwinを起動し、ディレクトリを移動します。

>cd /usr/lib/gcc/i686-pc-cygwin/3.4.4

そこに"libg2c.la"というファイルがあるはずです。このファイルを編集します。

>nano libg2c.la

最終行に

libdir='/usr/lib/gcc/i686-pc-cygwin'

とありますが、これを

libdir='/usr/lib/gcc/i686-pc-cygwin/3.4.4'

に修正します。
nanoを用いたのであれば^Oで内容を書き出し、終了します。
最後に、今修正した"libg2c.la"を上のディレクトリにもコピーします。

>cp libg2c.la ../

CygwinかMeepの相性の問題で、上記の処理をしないとコンパイルの途中でエラーになります。

人気blogランキングへ

続く
by tosakam | 2007-07-20 16:32 | 解析
<< Meepのインストール (2)... 英語の言い回しを改善 >>