伍叁随记

dotnet在Alpine下NativeAOT静态编译

方法来自https://github.com/dotnet/sdk/issues/37643

为了能够NativeAOT编译出来的二进制可执行文件兼容不同操作系统,需要采用静态编译方式

在.csproj文件中,<PropertyGroup>节点下面,添加

<StaticExecutable>true</StaticExecutable>

重新执行命令编译

dotnet publish -c Release -r linux-musl-x64 --self-contained true -p:PublishAot=true

编译出来的二进制文件就是静态链接的 ELF了

但issue中也提出,此方法会导致找不到libssl的问题,还需要有另外方法将libssl也静态链接编译进去,否则需要libssl的时候会报错

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注