代码之家  ›  专栏  ›  技术社区  ›  sdgfsdh

直接调用F#编译器(FSC)时发生链接错误

f#
  •  0
  • sdgfsdh  · 技术社区  · 4 年前

    我试图通过直接调用FSC来理解F#编译过程。

    我想:

    • 下载SDK
    • 将其解压缩到本地文件夹
    • 在几个F#源文件上调用FSC
    • 输出独立的Linux可执行文件

    这是我的剧本:

    #!/usr/bin/env bash
    
    set -e
    
    SDK_URL="https://download.visualstudio.microsoft.com/download/pr/820db713-c9a5-466e-b72a-16f2f5ed00e2/628aa2a75f6aa270e77f4a83b3742fb8/dotnet-sdk-5.0.100-linux-x64.tar.gz"
    SDK=./dotnet_sdk
    
    if [ ! -d $SDK ]
    then
      echo "Fetching SDK... "
      wget -c $SDK_URL
    
      echo "Unpacking SDK... "
      mkdir -p $SDK
      tar -xzf ./dotnet-sdk-5.0.100-linux-x64.tar.gz --directory $SDK
    fi
    
    $SDK/dotnet $SDK/sdk/5.0.100/FSharp/fsc.exe \
      -I $SDK/shared/Microsoft.NETCore.App/5.0.0 \
      --targetprofile:netcore \
      --deterministic \
      --noframework \
      --standalone \
      --target:exe \
      --out:hello.exe \
      ./Hello.fs
    

    我的程序 Hello.fs :

    [<EntryPoint>]
    let main argv =
      printfn "Hello, world. "
      0
    

    但是当我运行脚本时,我得到了这个错误:

    Microsoft (R) F# Compiler version 11.0.0.0 for F# 5.0 
    Copyright (c) Microsoft Corporation. All Rights Reserved. 
    error FS2008: Static linking may not include a mixed managed/unmanaged DLL
    

    我在这里错过了什么?

    0 回复  |  直到 4 年前