スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

F#入門基本編落穂拾い その34 コマンドプロンプトからのコンパイル(2)

今回はソースファイル名と作るEXE,DLLファイルの名前を異なる場合の方法の紹介から始めます。
これには-oを使います。
fsc ソースファイル名.fs -o 作るファイル名という形で使用します。
 
次に、複数ファイルからなるクラスライブラリを一つのdllファイルとして作る方法を紹介します。
次のように二つのファイルを準備しておきます。
ファイル名 myLib001.fs
内容
module myLib001
 
type myType001(v:int) =
    member this.V = v
 
let myAve (x:myType001) (y:myType001) =
    x.V+y.V
 
ファイル名 myLib002.fs
内容
module myLib002
 
let myMul (x:myLib001.myType001) (y:myLib001.myType001) =
    x.V*y.V
    
こうしておいて
fsc myLib001.fs myLib002.fs --target:library -o myFirst.dll
とするとmyFirst.dllが作成されます。
注意する点としてはmyLib002.fs内でmyLib001.fs内のモジュールを参照しているので、コンパイラに渡す順番としてmyLib001を先に書くことです。(この順番はvisual studioを使った場合のsolution explorerの表示順に対応します。)
 
次は複数ファイルから一つのEXEファイルを作ってみます。
ファイル名 myProg00010.fs
内容
module module02
 
let mySum x y =
    x + y
 
ファイル名 myProg0001.fs
内容
module module01
 
[<EntryPoint>]
let main (args : string[]) = //strign[]に引数が格納される
   
    let sum = module02.mySum 3 7
    printfn "%d" sum
    System.Console.ReadLine() |> ignore
 
    0 // 正常終了を示す値0を返す
 
次のようにコンパイルしてmyFirstExe.exeを作ってみます。
 
C:\Users\T_GYOUTEN\FSharp\Proj001>fsc myProg00010.fs myProg0001.fs -o myFirstExe.exe
Microsoft (R) F# 2.0 Compiler build 4.0.30128.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
 
(実行例)
C:\Users\T_GYOUTEN\FSharp\Proj001>myFirstExe.exe
10
 
これも、コンパイラに渡すファイルの順序に留意してください。一番最後に渡すモジュールが実行評価されます。(上と同様に、この順番および扱いはvisual studioを使った場合のsolution explorerの表示順に対応します。)
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

T GYOUTEN

Author:T GYOUTEN
F#と英単語とフリーソフトと読書に興味があります。
ホームページでフリーソフトも公開しています。どぞ御贔屓に。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリーエリア
フリーエリア
blogram投票ボタン
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。