ファイルを
- module1.fs
- module2.fs
- test.fs
の3つに分けてコンパイルする。
これらの結果がおま環なのかは不明。
検証不十分。
検証環境:
- F# 2.0 Compiler build 4.0.40219.1
- Windows7 Starter SP1
- .NET Framework v4.0.30319(?) v4.5.51209(?)
fsc.exe --target:library --out:templib\module1.dll module1.fs
fsc.exe --target:library --out:templib\module2.dll module2.fs
fsc.exe --target:exe --out:bin\test.exe --lib:templib --reference:module1.dll --reference:module2.dll test.fs
- 記述が冗長的になる。(依存するdllは1つ1つ
--reference
で指定する必要がある) dllのコードはexeにまとめられるらしい。(dllを削除しても動く)(動かない)- 何故か生成されたdllやexeにソースファイルのパスなどが含まれている。(謎)
fsc.exe --target:exe --out:bin\test.exe module1.fs module2.fs test.fs
依存関係を自動解決してくれないので自分で依存順にファイルを列挙する必要がある。- 何故か生成されたexeは方法1のものよりサイズが大きい。(謎)
- exeなどを生成する場合はエントリポイントを含むファイルを最後に置く必要がある。
- エントリポイントを含まない全てのファイルは必ずモジュール名を定義する必要がある。
同じ名前のモジュールを複数のファイルに分けてコンパイルはできない模様(モジュールは1ファイル内に収める)
C#のpartialみたいなソースファイル分割は…出来るかどうかは調べてないのでよく分からない