【发布时间】:2023-03-17 03:22:01
【问题描述】:
我在 F# 中有一个 hello world 程序。
open System
[<EntryPoint>]
let main argv =
printfn "Hello World from F#!"
0 // return an integer exit code%
在 Mac OS 上,我可以用“fsharpc”编译它,它会生成两个文件
FSharp.Core.dll hello.exe
EXE 文件在 Mac 上看起来很奇怪。但是我怎样才能从命令行执行它,而不使用项目结构(因为它看起来有点矫枉过正),就像这里解释的那样:https://dotnet.microsoft.com/learn/languages/fsharp-hello-world-tutorial/create
实际上,如果我运行“dotnet hello.exe”,我会收到此错误:
遇到致命错误。库“libhostpolicy.dylib” 未找到执行应用程序所需的 '/用户/zell/你好/'。无法作为独立应用程序运行。如果这 应该是依赖于框架的应用程序,添加 /Users/zell/hello/hello.runtimeconfig.json 文件指定 合适的框架。
【问题讨论】:
-
你试过
dotnet hello.exe吗? -
您也可以将其构建为独立的 exe 并对其进行修剪以减小大小。
dotnet publish -r win-x86 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true用于 Windows,并将 win-x86 替换为osx-x64(我认为)。 -
@FyodorSoikin 谢谢!但是那个我已经试过了。查看我更新的问题:-)
-
你不应该用 fsharpc 编译它,而是用 dotnet CLI 工具编译它。或者,因为它似乎是一个完整的框架应用程序,所以使用 mono hello.exe 来运行它。
-
@s952163 谢谢。如何用dotnet CLI工具编译?
标签: command-line f#