.net8 AOT笔记

发布时间 2023-10-10 17:43:35作者: 猿妙不可言

.net8 AOT笔记

 近期。net8发布了第一个rc版本,刚好近期在做一些.net6下的一些程序验证,顺带试了下。

以x64为例

系统ubuntu22.4 x64

 

下载.net8 sdk

https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-rc.1-linux-x64-binaries

 

安装.net8

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.100-rc.1.23463.5-linux-x64.tar.gz -C $HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

export PATH=$PATH:$HOME/dotnet

 

测试安装配置是否成功

dotnet –info

 

进入代码project目录(不是sln目录,而是csproj目录)

常规发布命令

dotnet publish -r linux-x64 -c Release

 

AOT发布(-p:PublishAot=true 参数)

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

 

如果报错,则需安装依赖

sudo apt-get install clang zlib1g-dev

 

 

ARM64环境搭建

注意下载ARM64的包

这边测试平台主要是高通410平台debian11、rk3568 Armbian (23.08.0-trunk),均为arch64环境

下载SDK路径

https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-rc.1-linux-arm64-binaries

 

安装SDK

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.100-rc.1.23463.5-linux-arm64.tar.gz -C $HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

export PATH=$PATH:$HOME/dotnet

 

常规发布命令

dotnet publish -r linux-arm64 -c Release

 

AOT发布(-p:PublishAot=true 参数)

dotnet publish -r linux-arm64 -c Release -p:PublishAot=true

 

如果报错,则需安装依赖

sudo apt-get install clang zlib1g-dev

 

 

注意事项:

发布出来的软件如果是在较高的linux中AOT编译出来的,则软件适用用范围为编辑环境的linux版本或更高版本,否则在低版本linux中可能因为依赖导致无法运行。

比如Armbian23.08上编译的AOT程序将无法运行到debian11中,提示GLIBC版本问题

./XxxSimulator: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./XxxSimulator)

./XxxSimulator: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./XxxSimulator)

 

所以AOT发布尽量选取最低支持的平台上进行,以便支持更多的运行平台