私は(load "foo.import.scm")
を持っています。同じディレクトリからプログラムを実行する限り、すべてをコンパイルすると動作します。それ以外の場合は私がチキンスキームを使用してバイナリ実行可能ファイルにモジュールを含めるには
csc -s foo.scm -emit-import-library foo
、その後
(import foo)
をすれば、それは罰金コンパイルが、その後について
の文句について "foo.import.scm" を見つけることができないError: (open-input-file) cannot open file - No such file or directory: "foo.import.scm"
文句
Error: (require) cannot load extension: foo
別のディレクトリ
私は
(use foo)
を行う場合、私は別のディレクトリからそれを実行したときに、それはおよそ
Error: (require) cannot load extension: foo
を文句を言います。
このモジュールをプログラムにロードして実行可能ファイルに含める正しい方法は何ですか? csc
に別のフラグを渡す必要がありますか?ドキュメントでは解決策がわかりません。
プロジェクト構造:同じディレクトリ内に3つのファイル 'main.scm'' foo.scm' 'foo.import.scm' 私は' csc main.scm'それから、結果の実行可能ファイルを他のディレクトリから操作したいと思います。私は 'load'と' use'を 'import'しようとしましたが、ローカルでは動作しますが、他のディレクトリでは動作しません。 – masukomi
これを行うにはいくつかの方法があります:1) 'foo'をグローバルエクステンションとしてインストールしてください。 2)[展開モード](http://wiki.call-cc.org/man/4/Deployment)を使ってローカルディレクトリに 'foo'をインストールし、そのディレクトリに' rpath'を設定します。 3) '-private-repository'を使って' rpath'をインストールしたディレクトリに合わせます。 4)あなたのプログラムを別々にコンパイルし、ユニットとして一緒にリンクしてください([マニュアルの複数ファイルの例]を参照してください)(http://wiki.call-cc.org/man/4/Using%20the%20compiler#an-複数のファイルの例))。 – sjamaan