如何使用mutliple模块在linux中编译fsharp控制台应用程序(如何定义fs文件的顺序?)

Mic*_*ahl 2 linux f#

如何使用控制台中的fsharpc在linux中编译fsharp应用程序?

我有多个模块,我的应用程序入口点是在Program.fs文件中的经典控制台应用程序样式:

open module A
open module B
open module C

[<EntryPoint>]
    let main argv = 
    ...
Run Code Online (Sandbox Code Playgroud)

其中A,B,C在名为A.fs,B.fs和C.fs的文件中...

在Visual Studio中,可以通过在项目视图中重新排列它们来轻松定义编译到文件的顺序,但是我不清楚如何在linux中执行此操作...?

我想我必须以某种方式在控制台中定义顺序

$ fsharpc -o test.exe Program.fs --fileorder:[A.fs,B.fs,C.fs,Program.fs]
Run Code Online (Sandbox Code Playgroud)

我正在使用F#3.1 (目前正在使用新的跨平台VSCode IDE)

rig*_*old 9

只需按正确的顺序将文件传递给fsharpc:

$ fsharpc --out:test.exe A.fs B.fs C.fs Program.fs
Run Code Online (Sandbox Code Playgroud)

我通常将此列表存储在一个文件中,然后使用xargs:

$ cat dependency-order.txt
A.fs
B.fs
C.fs
Program.fs
$ cat dependency-order.txt | xargs -d '\n' fsharpc --out:test.exe
Run Code Online (Sandbox Code Playgroud)