1. 查看 Zynq Linux 版本

通过 Tera Term 软件,远程登录到 Zynq 系统上,运行命令:

uname -a

显示如下(系统是 armv7l):

 

2. 编译适用于 arm 版本的 Grpc 服务可执行程序

Grpc 服务代码目录下,执行命令:

dotnet publish -r linux-arm

// 解决方案下存在多个项目时,使用命令:
dotnet publish 项目名.csproj -r linux-arm

参考:发布独立应用  Linux RID

 

3. 在 Zynq 上运行 Grpc 服务

运行出现错误:

./GrpcGreeter: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

 解决方案:

在 Xilinx SDK 安装目录下搜索 libstdc++.so.6,将 aarch32(armv7l 是 32位系统) 目录下的如下图所示的两个文件拷贝到 Zynq 的 /lib 目录下

 

 

 重新运行 Grpc 服务,出现错误:

./GrpcGreeter: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

 解决方案:同上,将如下图所示目录下的 libgcc_s.so.1 拷贝到 Zynq 的 /lib 目录下

 

 重新运行 Grpc 服务,出现错误:

Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.

 解决方案:修改 Grpc 服务源码项目的 .csproj 文件,添加:

<ItemGroup>
    <RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true"/>
</ItemGroup>

如下图所示:

参考:NET 的全球化模式 NET Core Globalization Invariant Mode

 

重新运行 Grpc 服务,成功。如下图所示:

 

 

  

 

posted on 2021-01-27 17:13  青叶煮酒  阅读(464)  评论(0编辑  收藏  举报