2017-01-10 19 views
0

このSchemeソースファイルをメモ帳に書きました。私はgambitスキームをインストールしました。Gambitを使って実行可能ファイルを作る方法

(define hello-world 
    (lambda() 
     (begin 
    (write ‘Hello-World) 
      (newline) 
    (hello-world)))) 

私はWindowsコマンドラインを使用します。私は 'gsc hello.scm'をコマンドラインで入力します。私のデスクトップ上の "hello.o2"というファイルを吐き出します。私はコマンドラインで "Hello World"のポップアップを見たいと思う。例えば、私がC++で物をコンパイルすると、それは私にa.exeというファイルを与え、私はコマンドラインでそれを観察することができます。

どのように私はスキームのgambitコンパイラでこれを行うことができますか?

答えて

0

あなたは-exeコンパイラスイッチを追加することによって、実行可能ファイルを作成することができます。

gsc -exe hello.scm 

は、ファイルhello.exeを生成します。別の方法としては、.o1(または.o2、など)ファイルを作成し、それを実行することができます。あなたは自分自身で実行される実行可能にしたい場合

gsc hello.scm 
gsi hello 
+0

「gsc -exe hello.scm」と表示されるときにエラーメッセージが表示されます。 C:\ユーザーは\所有者\デスクトップ> GSC -exe hello.scm C:\ PROGRA〜2 \ギャンビットの\ v4.8.6の\ libに/ libgambit.a(gai_strerrorA」 collect2.exe 'へ 定義される基準OS_B:エラー:ldが1の終了ステータスを返しました – John

+0

この問題は、マシンにインストールしたものとlibgambit.aをビルドするために使用されたものとの間のmingwバージョンの違いが原因である可能性があります(明らかにソリューションはソースからGambitを自分で作成することです:[link ](https://webmail.iro.umontreal.ca/pipermail/gambit-list/2013-September/007042.html))。もう1つの解決方法は、同じマシンをマシンにインストールすることです。 – feeley

0

は、あなたがそれを作るためにいくつかのことをする必要があります正しく動作します。

@;gsi-script %~f0 %* 
; 
(define hello-world 
     (lambda() 
       (begin (write `Hello-World) (newline) (hello-world)))) 

(define (main) 
     (hello-world)) 

最初の行はDOS/Windowsのみです。その一番上の行のUnixのバージョンでは、これらの行はそのコンパイル後のコードを実行する方法をコンパイラに伝える

;#!/usr/local/bin/gsi-script -:d0 

です。

また、main手順が必要です。パラメータを渡していない場合は、私が与えたフォームを使用することができます。パラメータを渡す必要がある場合、すべてのパラメータが文字列として渡され、使用前に解析または変換する必要があるかもしれないことに注意して、メインプロシージャを適切に記述する必要があります。

関連する問題