[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: train on MGL2



鈴木(康)です。
<3ADB84E82C6.8C8ANGC@ff.iij4u.or.jp>の記事において
ngc@ff.iij4u.or.jpさんは書きました。

  | とりあえずコンパイルは通ったのですが,実行させてみると
  |   Shared object not found "libmgl2.so.2.0"
  |   (記憶で書いているので,細かい文面は違うかも)
  | というような表示が出て,そのまま終了してしまいます.
  | ELFの場合は環境変数 LD_LIBRARY_PATH にパスを与える必要がある
  | そうなので,
  |   setenv LD_LIBRARY_PATH  /usr/lib:/usr/pkg/lib
  | としてから,再度trainを実行しましたが,現象は同じでした.
  | 
  | 2,3日前に,yanaiさんのpkgsrcがあることを知らずにtaskmgを
  | 自力でコンパイルしようとしていたときにも,同じくエラー表示
  | でひっかかっていました.
  | そのときは,-L/usr/pkg/lib としただけでa.out/ELFの区別の
  | ことは知らなかったので,修正していません.
  | 
  | 何かやるべきことが足りてないように思っていますが,どうでしょう?

環境によるんですが、/usr/X11R6/lib もいれとく必要があるかも...
X もリンクした mgl2 (config.mk-hpcmips+x) だと仮定して書きます。

-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -Wl,-rpath,/usr/X11R6/lib -lmgl2

とやれば、LD_LIBRARY_PATH を設定しなくても うまくいくと思います。

LD_LIBRARY_PATH を /usr/lib:/usr/pkg/lib:/usr/X11R6/lib に設定して、
リンクすれば、

-L/usr/pkg/lib -lmgl2

でリンクできてしまうのですが、
今度は、実行時にも

LD_LIBRARY_PATH を /usr/lib:/usr/pkg/lib:/usr/X11R6/lib に設定する
必要があります。


あと、-Wl,-rpath の指定について気になっていること。
X 版の libmgl2.so を作るときに -rpath を指定しているんで、本当は、

-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -lmgl2

だけで link が通っても良さそうなんですが、何故か通らないです。

  | それと,taskmgで入力しようとしたところ,BackSpaceやDELのキーが
  | 全然効かないのですが,仕方ないんでしょうか.

MGL で できるだけ keymap を同じに見せようとはしているんですが、
BS , DEL キー の挙動だけは、OS に合わせてあります。

		BS 		DEL
X Emu		0x08 (^H)	0x7f
NetBSD 		0x7f		0x7f
FreeBSD		0x08		(MK_DEL or 0x7f)(すいません忘れました)
Linux		0x08		(0x7f or MK_DEL)( FreeBSD と違ったような..)

というわけで、^H で BackSpace の動作をするのであれば、
Keymap を変更するか、
アプリケーションの方で DEL(0x7f) の対応をすれば OK じゃないかと
思います。

--
					鈴木 康司 @NECソリューションズ
					suz@hpc.bs1.fc.nec.co.jp
					TEL 042-333-6465