5. Advインストール
- ネットワークにつながずにFDでIO, Metis, Solidの3モジュールをコピー
5.0 Advファイルの入手 5.0.1 フロッピーディスクのmount mount -t vfat /dev/fd0 /mnt/floppy で成功。-t msdosだと8.3文字のファイル名に縮められてしまうのでだめ。 5.0.2 adventureディレクトリの作成 %cd /usr/local
%mkdir adventure/ アーカイブ用のディレクトリを作成
%cd adventure
%mkdir archive 5.0.3 アドベンチャアーカイブのコピー %cd archive
%cp /mnt/floppy/* ./ 同様にBCtoolをFDでコピー。一旦FDをアンマウントしないといけない。 %umount /dev/fd0
%mount -t vfat /dev/fd0 /mnt/floppy
%cp /mnt/floppy/* ./ 引き続きTetMeshからPDFを除いたものとTriPatchをFDでコピー。TetMeshをばらしたのは、アーカイブが大きすぎるため。 5.0.4 解凍 Adv_IO解凍用ディレクトリの作成 %cd /usr/local/adventure
%mkdir AdvIO
%mv archive/AdvIO-0.81b.tar.gz AdvIO/
%cd AdvIO
%gunzip AdvIO-0.8b.tar.gz
%tar -xvf AdvIO-0.81b.tar
%gzip AdvIO-0.81b.tar
%mv AdvIO-0.81b.tar ../archive/ 5.0.5 作業ディレクトリの移動 作業場は/usr/loca/にあるより/miyoshiにある方が安心なので/adventureを移動 #su
#cd /usr/local
#mv /usr/loca/adventure ~miyoshi/
#exit
5.1 AdvTriPatch-0.82bのインストール 5.1.1 解凍 突然miyoshiで操作をしようとしたら、属性がrootになっていてファイルを操作不能 %su
#cd ~miyoshi
#chown -R miyoshi:miyoshi adventure で所有者を変更した。 %gunzip AdvTriPatch-0.82b.tar.gz
%tar -xvf AdvTriPatch-0.82b.tar 5.1.2 環境変数のセット (1)環境変数PATHに/usr/loca/binを追加する。
(2)共有ライブラリを探す環境変数LD_LIBRARY_PATHに/usr/local/libを追加する。 /rootの.cshrcのバックアップを取る。 %su
#cd /root
#cp .cshrc .cshrc.original
#emacs .cshrc (1)はsetenv PATHの行を次のように変更
setenv PATH="/usr/local/bin:/usr/sbin:/sbin:${PATH}"
(2)は次の1行を追加
setenv LD_LIBRARY_PATH /usr/local/lib %su
#mkdir /usr/local/adventure
#tcsh
#source .cshrc
#printenv なぜかrootだとtcshを起動しても自動的に.cshrcが呼ばれないのでsourceコマンドで実行する。 5.1.3 インストール #cd ~miyoshi/adventure/AdvTriPatch-0.82b
#make install prefix=/usr/local/adventure/bin
#exit 5.1.3.1 インストールの確認 %ls /usr/local/adventure/bin
ADVENTURE_TriPatch* maskMelon* mcpach*
5.2 AdvTetMesh-0.81bのインストール フロッピーを使って苦労してダウンロードしてきた部分アーカイブであるAdvTetMesh-0.81bS.tar.gzは今やftpで取得したフルアーカイブがあるので削除した。 5.2.1 解凍 /root/tmp/からAdvTetMesh-0.81bS.tar.gzを~miyoshi/adventure/archiveに移動した後にchownでオーナを変更。
%cd ~miyoshi
%cd adventure
%cd archive
%su
#chown miyoshi:miyoshi AdvTetMesh-0.81bS.tar.gz
#exit
%cd ..
%gunzip -c archive/AdvTetMesh-0.81b.tar.gz | tar -xvf - 最後の-の意味はtarの入力をファイルとして扱うという意味らしい。 5.2.2 インストール %cd AdvTetMesh-0.81b
%cd TetMesh_M
Makefileのデフォールト設定はTru64なので編集してLinux用に修正。 # for g++
#CXX = g++
# for cxx
CXX = cxx を # for g++
CXX = g++
# for cxx
#CXX = cxx へ変更。 # for Linux
#LDFLAGS = -static
# for Tru64 Unix
LDFLAGS = -non_shared を # for Linux
LDFLAGS = -static
# for Tru64 Unix
#LDFLAGS = -non_shared へ変更。 %make
%cd ..
%su
#cp bin/* /usr/local/adventure/bin/ 5.2.2.1 インストールの確認 %ls /usr/local/adventure/bin
ADVENTURE_TriPatch advtmesh8m maskMelon mcpach
5.3 AdvIOのインストール 5.3.1 解凍 5.0.4でAdv_IOは既に解凍した。 5.3.2 インストール %cd adventure
%cd AdvIO-0.81b
%./configure
%make
%ls include/Adv
15個の*.hファイルが作られた。
%ls lib
4個のアーカイブファイルが作られた。 %su
#cp -R ./lib/ /usr/local/adventure/
#exit
%ls /usr/local/adventure/lib/ で4個のアーカイブファイルを確認。 %su
#cp -R ./include/ /usr/local/adventure/
#exit
%ls /usr/local/adventure/include/Adv で15個のヘッダファイルを確認。
5.4 AdvBCtoolのインストール 5.4.1 解凍 一般ユーザでログイン %cd adventure
%gunzip -c archive/AdvBCtool-0.81b.tar.gz | tar -xvf - 5.4.2 インストール %cd AdvBCtool-0.81b
%cd src
%cd bcGUI
%emacs Makefile Mesaは/usr/localにインストールしたので GL_INC = -I/usr/include
GL_LIB = -L/usr/lib を GL_INC = -I/usr/local/include
GL_LIB = -L/usr/local/lib に変更する。 LessTifは/usr/X11R6/にインストールしたので、 MOTIF_INC = -I/usr/X11R6/include
MOTIF_LIB = -L/usr/X11R6/lib のままで変更しない。 %make > make.log
copenglview.cxx: In method `bool COpenGLView::RenderScene(float *)
':
copenglview.cxx:303: warning: negative value `-1' passed as
argument 1 of `glPus
hName(GLuint)'
../Common/TFC/cnode.o: In function `_Rb_tree<CMESH *, pair<CMESH
*const, bool>,
_Select1st<pair<CMESH *const, bool> >, less<CMESH *>,
allocator<bool> >::_M_crea
te_node(pair<CMESH *const, bool> const &)':
../Common/TFC/cnode.o(._Rb_tree<CMESH *, pair<CMESH *const, bool>,
_Select1st<pa
ir<CMESH *const, bool> >, less<CMESH *>, allocator<bool>
>::gnu.linkonce.t._M_cr
eate_node(pair<CMESH *const, bool> const &)+0x51): undefined
reference to `__sta
rt_cp_handler'
../Common/TFC/cnode.o: In function `vector<CMESH *,
allocator<CMESH *> >::_M_ins
ert_aux(CMESH **, CMESH *const &)':
../Common/TFC/cnode.o(.vector<CMESH *, allocator<CMESH *>
>::gnu.linkonce.t._M_i
nsert_aux(CMESH **, CMESH *const &)+0x169): undefined reference to
`__start_cp_h
andler'
../Common/TFC/cnode.o: In function `_Rb_tree<CELEMENTGRP *,
pair<CELEMENTGRP *co
nst, bool>, _Select1st<pair<CELEMENTGRP *const, bool> >,
less<CELEMENTGRP *>, al
locator<bool> >::_M_create_node(pair<CELEMENTGRP *const, bool>
const &)':
../Common/TFC/cnode.o(._Rb_tree<CELEMENTGRP *, pair<CELEMENTGRP
*const, bool>, _
Select1st<pair<CELEMENTGRP *const, bool> >, less<CELEMENTGRP *>,
allocator<bool>
>::gnu.linkonce.t._M_create_node(pair<CELEMENTGRP *const, bool>
const &)+0x51):
undefined reference to `__start_cp_handler'
../Common/TFC/cnode.o: In function `vector<CELEMENTGRP *,
allocator<CELEMENTGRP
*> >::_M_insert_aux(CELEMENTGRP **, CELEMENTGRP *const &)':
../Common/TFC/cnode.o(.vector<CELEMENTGRP *, allocator<CELEMENTGRP
*> >::gnu.lin
konce.t._M_insert_aux(CELEMENTGRP **, CELEMENTGRP *const
&)+0x169): undefined re
ference to `__start_cp_handler'
../Common/TFC/cnode.o: In function `allocator<pair<CMESH *const,
bool> >::alloca
tor(void)':
../Common/TFC/cnode.o(.allocator<pair<CMESH *const, bool>
>::gnu.linkonce.t.(voi
d)+0x18): undefined reference to `__start_cp_handler'
../Common/TFC/cnode.o(.gnu.linkonce.t._._t9allocator1Zt4pair2ZCP5C
MESHZb+0x33):
more undefined references to `__start_cp_handler' follow
/usr/X11R6/lib/libXm.so: undefined reference to
`XpGetDocumentData'
/usr/X11R6/lib/libXm.so: undefined reference to `XpStartPage'
/usr/X11R6/lib/libXm.so: undefined reference to `XpQueryExtension'
/usr/X11R6/lib/libXm.so: undefined reference to `XpEndPage'
/usr/X11R6/lib/libXm.so: undefined reference to `XpEndJob'
/usr/X11R6/lib/libXm.so: undefined reference to `XpSelectInput'
/usr/X11R6/lib/libXm.so: undefined reference to `XpGetContext'
collect2: ld returned 1 exit status
make: *** [bcGUI] エラー 1 webで
http://www.astronomy.net/forums/xephem/messages/79.shtml
を見つけた。その回答記事に従ってMakefileを訂正した。
%emacs Makefile LIBS = -lMesaGLw -lGLU -lGL -lXm -lXt -lXmu -lXext -lSM -lICE -lX11 -lm を LIBS = -lMesaGLw -lGLU -lGL -lXm -lXp -lXt -lXmu -lXext -lSM -lICE -lX11 -lm に変更した。再度 %make 今度は成功。 %su
#cp bcGUI /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/ でコピーされたことを確認。 %cd ..
%cd faceOfMesh
%make
%su
#cp faceOfMesh /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%cd makefem
%emacs Makefile ADVSYSDIRにAdvIOを設置したディレクトリを記述する。 ADVSYSDIR = $(HOME)/adventure/AdvIO-0.81b %make
%su
#cp makefem /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%cd makepcg
%make
%su
#cp makepcg /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
%cd ..
%su
#cp msh2pcg /usr/local/adventure/bin/
#exit
%ls /usr/local/adventure/bin/
5.5 AdvMetisのインストール 5.5.1 解凍 一般ユーザでログイン %cd adventure
%gunzip -c archive/AdvMetis-0.61.tar.gz | tar -xvf - 5.5.2 インストール %cd AdvMetis-0.61
%emacs Makefile.in ADVSYSDにAdvIOを設置したディレクトリを記述する。 ADVSYSD = $(HOME)/adventure/AdvIO-0.81b ふと気づいたが、AdvIOのヘッダファイルとアーカイブファイルは他のモジュールのコンパイルのみに必要なのであり、/usr/local/にはインストールする必要はなかったのではないか? %make
%cd ADVENTURE_METIS
%su
#cp adventure_metis /usr/local/adventure/bin
#exit 5.5.2.1 インストールの確認 %ls /usr/local/adventure/bin
5.6 AdvSolidのインストール 5.6.1 解凍 一般ユーザでログイン %cd adventure
%gunzip -c archive/AdvSolid-0.81b.tar.gz | tar -xvf - 5.6.2 インストール %cd AdvSolid-0.81b
%./configure --with-adv=/home/miyoshi/adventure/AdvIO-0.81b --prefix=/home/miyoshi/adventure
%make
%make install
%cd ..
%su
#cp bin/* /usr/local/adventure/bin/
#exit 5.6.2.1 インストールの確認 %ls /usr/local/adventure/bin advshow advsolid advsolid-h advsolid-p advsolid-s hddmmrg log2cnv-cg log2cnv-nr log2info が追加された。
5.7 AdvVisualのインストール 5.7.1 解凍 一般ユーザでログイン %cd adventure
%gunzip -c archive/AdvVisual-0.2b.tar.gz | tar -xvf - 5.7.2 インストール %cd AdvVisual-0.2b
%cd server
%./configure --with-advio=/home/miyoshi/adventure/AdvIO-0.81b
%make 次のエラーが起きる。 socket++.cpp: In method 'Init SockInetServer::noChanel()':
socket++.cpp: 351: 'struct fd_set' has no member named 'fds_bits'
make:*** [socket++.o] Error 1. 対策 socket++.cpp の348行目の
#if 0 を
#if 1 に書き換えてから
% make clean
% make %su
#cp advvis_server /usr/local/adventure/bin/
#exit
%cd ..
%cd client
%emacs Makefile Mesaは/usr/localにインストールしたので MESA_INCDIR = /usr/include
MESA_LIBDIR = /usr/lib に設定する。 LessTifは/usr/X11R6/にインストールしたので、 MOTIF_INCDIR = /usr/X11R6/include
MOTIF_LIBDIR = /usr/X11R6/lib に設定する。 %make linux /usr/X11R6/lib/libXm.so: undefined reference to `XpGetDocumentData'
/usr/X11R6/lib/libXm.so: undefined reference to `XpStartPage'
/usr/X11R6/lib/libXm.so: undefined reference to `XpQueryExtension'
/usr/X11R6/lib/libXm.so: undefined reference to `XpEndPage'
/usr/X11R6/lib/libXm.so: undefined reference to `XpEndJob'
/usr/X11R6/lib/libXm.so: undefined reference to `XpSelectInput'
/usr/X11R6/lib/libXm.so: undefined reference to `XpGetContext'
collect2: ld returned 1 exit status
make[1]: *** [advvis] エラー 1
make[1]: 出ます ディレクトリ `/home/miyoshi/adventure/AdvVisual-0.2b/client'
make: *** [linux] エラー2 bcGUIのmakeの時と同じエラーなので、同じ対策を取る。 %emacs Makefile linux :
....
"LIBS = -lXm -lXt -lX11 -lXext -lGLU -lGL -lpthread -lm" を linux :
....
"LIBS = -lXm -lXp -lXt -lX11 -lXext -lGLU -lGL -lpthread -lm" に変更した。再度 %make clean
%make linux で成功。 %su
#cp advvis /usr/local/adventure/bin/
#exit
このページの内容に関するご質問はこちらまで。
作成者: 株式会社インサイト 三好昭生 |