加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

F#,Linux和makefile

发布时间:2020-12-14 01:21:06 所属栏目:Linux 来源:网络整理
导读:我打算将F#程序分发为二进制和源代码,以便用户可以根据需要重新编译它.在 Windows上,我理解如何执行此操作:提供.fsproj和.sln文件,Visual Studio和MSBuild都可以理解这些文件. 在Linux上,C程序的传统解决方案是makefile.这取决于gcc直接可用,它始终是. F#编
我打算将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读