Interlude - Where should I place shlbs?

[ Updated: May 29, 1997 ]


SmalltalkAgents はデフォルトで 6 つの共有ライブラリ書類が、アプリケーションと同じ階層にインストールされます。 添付の Installation_Notes.html には

The installer also places a native "ANSI C Lib" code fragment into the Extentsions folder, since it may be needed for other CFM-based applications.
とありますが、わたしの環境 (インストール・ディレクトリとシステム・フォルダが別パーティション) では、アプリケーション・ディレクトリにインストールされます。
  1. Type: shlb, Creator: cfmg shlbcfmg
  2. Type: shlb, Creator: QKSA shlbQKSA

これらは、 SmalltalkAgents で作成されたアプリケーションも必要とします。 試しに、ローカル・ディレクトリを掘って、そこでアプリケーションを作成し、ダブルクリックで起ち上げると、

The required "AOS PowerPlug" PPC DLL (fragment) did not load properly.
というアラートが出てきます。これは "終了" ボタンしか持っていないので、これ以上先へ進めることができません。

これをなんとかするには

  1. 作成したアプリケーションを SmalltalkAgents と同じ階層に置く
  2. 6 つの共有ライブラリ書類を機能拡張フォルダに置く (梅田英和さんのご教示よる)
という方法があります。 ただ、 1) は間抜けだし、 2) はただでさえ散らかっている機能拡張フォルダにバラ撒くと管理が面倒、という問題が発生します。

なんとかならんかなと思っていたところ、 fj.sys.mac で以下のような投稿を見かけました。

共有ライブラリ書類は、通常は、アプリケーションと同じ フォルダか、機能拡張フォルダおよびその下位フォルダ に あれば、認識されます。
で、試しにやってみるとちゃんと動く。

で、わたしは機能拡張フォルダの下に AO/S Extensions というディレクトリを掘って、共有ライブラリ書類を全部そこへ移動させました。

System Folder
 + Extensions
 +-+ AO/S Extensions <- このディレクトリを新規に作って、ここに放り込む 
 +-+-+ ANSI C CFM68K Lib
 +-+-+ ANSI C PPC Lib
 +-+-+ AOS PowerPlug
 +-+-+ AOS Runtime
 +-+-+ GNU RegEx (fat)
 +-+-+ WASTE (fat)
これで、もうどこでアプリケーションを作ってもダイジョブです。 しかも、見た目もスッキリ (笑)。 あ、蛇足ですが、 "AO/S Extensions" というディレクトリ名にこだわる必要はありません。なんでも佳いです。 この名前は Preferences ディレクトリにある AO/S Preferences という名前にあわせたに過ぎません。


Created: May 29, 1996