|
|
|
Visualモジュールの利用(2001/01/30-05/12)
1. 思ったこと
(1)ここはREADMEもINSTALLもないのか。
(2)解凍からやり直しだ。libというディレクトリはないとちゃんと教えて欲しい。
(3)ああunixはかったるい。
(4)どうしてAdvIOのライブラリはコピーしなくてはいけないのか。パスを切るだけとかにして欲しい。
(5)makeの仕方だが、Linuxの場合どう変えれば良いのだろう。AdvVisual-0.1/advio/alpha/の兄弟分でAdvVisual-0.1/advio/linux/というディレクトリがあるのが怪しいぞ。
(6)Makefileを見たら案の定linuxというオプションがあるぞ。
(7)mesaがないはず(AdvBCToolの日記参照)なのにmake linuxでエラーがでないのは変だな。
(8)(ここから2/2)AdvDocument.hが見つからないのは、./AdvVisual-0.1/advio/alpha/とalphaに置いてあるからではないか。advio/linux/に変えてみよう。
(9)Adv/AdvDocument.hになっている。なぜAdv/か。AdvDocument.hの置き場のディレクトリをもう一度見てみよう。なんだlinux/Include/Adv/にしなくてはいけないんだ。マニュアルはそれが分かるように書いてあったかな。
(10)ヘッダファイルディレクトリInclude/Advを丸ごとAdvVisual-0.1/advio/alpha/にコピーしますと書くか、コマンドそのものを書いてもらった方が分かりやすい。
(11)AdvDocIOのエラーはlibAdvBase.a 、libAdvDocIO.a 、 libAdvFileIO.aをコピーした場所がAdvVisual-0.1/advio/alpha/lib/だったせいだ。
(12)undefined reference to `CORBA_string_dup'はCORBAの問題らしい。
(13)(5/12)AdvVisual-0.2bに変更する必要があるかも知れない。
-
2. うまくいったこと/やったこと
(1)AdvVisual-0.1b.tar.gzを解凍して所定の位置に移動した。
(2)AdvVisual-0.1/doc/manual-jp.pdfを開いた。
(3)AdvIO-0.8b/Base/libAdvBase.aのシンボリックリンク作成に成功。libAdvDocIO.a 、 libAdvFileIO.aのシンボリックリンクにも成功。
(4)AdvVisual-0.1/advio/alpha/の下にInclude/を作り、AdvIO-0.8b/Include/Adv/*をAdvVisual-0.1/advio/alpha/Include/にコピーした。
(5)AdvVisual-0.1/client/Makefileの中身を見た。
(6)AdvVisual-0.1/client/でmake linuxを実行した。エラーなし。
(7) cd ../serverとmake cleanを実行した。
(8)(ここから2/2)AdvDocument.hの置き場所を探した。
./AdvIO-0.8b/DocIO/AdvDocument.h
./AdvIO-0.8b/Include/Adv/AdvDocument.h
./AdvVisual-0.1/advio/alpha/Include/AdvDocument.h
(9)ResultDataset.h:12をemacsで編集して見てみた。
(10)マニュアル4.3 3をもう一度読んだ。
(11)libAdvBase.a 、libAdvDocIO.a 、 libAdvFileIO.aをadvio/linux/lib/に移動した。
(12)server/make linuxのundefined reference to `CORBA_string_dup'のエラーを回避するためにAdvIO-0.8bのディレクトリで./configure --without-orbitを実行。
(13)AdvIOの再configureの後でmake linuxを再実行。エラーなし。
(14)client/advvis_linux起動成功。
(15)そのプログラムの中で*.inpファイルの選択成功。
(16)そのプログラムの中でMaster Serverの指定問題なし。
(17)(ここから5/10)Slave hostsの指定に成功。
(18)(5/12)Master serverのマシンをクライアントadvvis_linuxを立ち上げたマシンと違うマシンに指定したところ、Master serverの起動に成功した模様。permission deniedがでなくなった。
-
3. 分かったこと
(1)シンボリックリンク作成に失敗したと思ったのは勘違い。実はAdvVisual-0.1/advio/alpha/libというディレクトリは存在しなかった。
(2)(ここから2/2)Adventure会議での情報によると、server/make linuxのundefined reference to `CORBA_string_dup'のエラーは、AdvIO の configure のオプションで --without-orbit を指定して作成したライブラリで server プログラムをリンクすると正常終了する。
(3)(ここから5/10)AE社ご担当よりスレーブホストの指定の仕方について教えて頂いた。
2台目以降のスレーブホスト名は、リストの中に表示されている登録済ホストをマウスで選択して、どの位置に新たなホスト名を登録するのかを指定した後で初めて登録(appendまたはinsert)できる。
-
4. うまくいかないこと
(1)AdvIO-0.8b/Base/libAdvBase.aのシンボリックリンク作成に失敗してa AdvVisual-0.1/advio/alpha/libという名前のディレクトリをファイルにしてしまった。
(2)AdvVisual-0.1/client/でmake alphaを実行したが、やっぱりエラーが出た。/usr/bin/ld: cannot find -ldnet_stub。
(3)AdvVisual-0.1/serverでmake linuxを実行したがエラーが出た。
make -f build.mk \
"ARCH = linux" "CC = g++" "LIBS = -L../advio/linux/lib -lAdvDocIO -lAdvFileIO -lAdvBase -lm" \
"INCLUDE = -I/usr/Include -I../advio/linux/Include -I. -I../client/Common" \
"CFLAGS = -DLINUX -Wall -O3 -static"
make[1]: Entering directory `/home/miyoshi/adventure/library/AdvVisual-0.1/server'
g++ -c -DLINUX -Wall -O3 -static -I/usr/Include -I../advio/linux/Include -I. -I../client/Common Main.cpp
In file Included from MasterServer.h:24,
from Main.cpp:22:
ResultDataset.h:12: Adv/AdvDocument.h: No such file or directory
In file Included from SlaveServer.h:21,
from Main.cpp:23:
Geomman.h:10: Adv/AdvDocument.h: No such file or directory
make[1]: *** [Main.o] Error 1
make[1]: Leaving directory `/home/miyoshi/adventure/library/AdvVisual-0.1/server
'
make: *** [linux] Error 2
(4)(ここから2/2)AdvVisual-0.1/advio/alpha/Include/*.hをAdvVisual-0.1/advio/linux/Include/Adv/に移動して、再度server/でmake linuxを実行したらAdv/AdvDocument.hのエラーはなくなったが、次のエラー発生。
g++ -DLINUX -Wall -O3 -static -o ../bin/server/advvis_server_linux Main.o Master
Server.o SlaveServer.o Master.o Slave.o socket++.o string++.o systeminfo.o F
Element.o FENode.o Matrix.o Mathfunc.o Tet4.o Tet10.o Hex8.o Mesh.o transfo
rm.o Analysis.o Graphics.o Mapping.o CrossSectionGenerator.o Geomman.o ResultDa
taset.o -L../advio/linux/lib -lAdvDocIO -lAdvFileIO -lAdvBase -lm
/usr/bin/ld: cannot find -lAdvDocIO
collect2: ld returned 1 exit status
make[1]: *** [../bin/server/advvis_server_linux] Error 1
make[1]: Leaving directory `/home/miyoshi/adventure/library/AdvVisual-0.1/server
(5)server/make linuxがまだ成功しない。
/home/miyoshi/adventure/library/AdvIO-0.8b/DocIO/AdvIDocument.c:216: undefined r
eference to `CORBA_string_dup'
/home/miyoshi/adventure/library/AdvIO-0.8b/DocIO/AdvIDocument.c:403: undefined r
eference to `PortableServer_POA_servant_to_reference'
/home/miyoshi/adventure/library/AdvIO-0.8b/DocIO/AdvIDocument.c:404: undefined r
eference to `CORBA_Object_duplicate'
あまりに多いのでこの手のメッセージは以下省略。
(6)advvis_linux起動後 Server > Initializeメニューで表示されるダイアログボックスでHost Listを入力しようとしたら最初の1台以外not selectedといってinsertが受け付けられない。
(7)advvis_linux起動後Master Server 1台、Slave Host 5台を指定し、ServerコントロールダイアログでStartした後、Connectボタンを押したところ接続に失敗した。X端末も異常終了。Clusterもfreezeしてしまった。以下はコンソールのメッセージ。
Permission denied.
SockInetClient::connectServer() _hostName[capellas]
SockInetClient: connect: Connection refused
(8)(5/12)Permission deniedは出なくなったが、
%Warning:
Name: Controller/HostManager/Dialog
Class: XmDialogShell
RowColumn.c(3531):_XmMenuFocus() - XmMENU_FOCUS_RESTORE
window is not viewable
が表示され、コントロールダイアログの再描画が出来なくなり、操作不能になった。
-
5. Tips
(1)
このページの内容に関するご質問はこちらまで。
作成者: 株式会社インサイト 三好昭生
|
|
|
|