rwa*_*ace 4 linux mono f# makefile
我打算将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
Run Code Online (Sandbox Code Playgroud)
或者您可以允许用户使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |