[英]F#, Linux and makefiles
我打算將F#程序分發為二進制和源代碼,以便用戶可以根據需要重新編譯它。 在Windows上,我理解如何執行此操作:提供.fsproj和.sln文件,Visual Studio和MSBuild都可以理解這些文件。
在Linux上,C程序的傳統解決方案是makefile。 這取決於gcc直接可用,它始終是。
F#編譯器可以安裝在Linux上並在Mono下工作,所以到目前為止一切正常。 但是,據我所知,它不會創建fsc
運行編譯器的場景,而是命令是mono ...path.../fsc.exe
。 這也沒關系,除了我不知道路徑是什么。 所以在我的情況下運行編譯器的完整命令可能是mono ~/FSharp-2.0.0.0/bin/fsc.exe types.fs tptp.fs main.fs -r FSharp.PowerPack.dll
除了我不確定其中fsc.exe實際上位於用戶的計算機上。
有沒有辦法在makefile中找到它,或者最好是在文檔中解釋上述內容並依賴用戶根據他的設置修改命令?
如果您不想使用autoconf,請編寫README並告訴我們如何設置工具來編譯您的程序。 例如,您可以要求使用binfmt_misc內核模塊以允許系統自動使用正確的啟動程序來處理已知格式的文件,因為$ PATH必須包含fsc.exe的路徑,因此您的Makefile就像下面的代碼:
FILES=types.fs tptp.fs main.fs
target.exe: ${FILES}
fsc.exe -o $@ ${FILES} -r FSharp.PowerPack.dll
或者您可以允許用戶使用makefile變量指向編譯器:
MONO=/usr/bin/mono
FSC=/usr/local/fsharp/bin/fsc.exe
COMPILER=${MONO} ${FSC}
FILES=types.fs tptp.fs main.fs
target.exe: ${FILES}
${COMPILER} -o $@ ${FILES} -r FSharp.PowerPack.dll
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.