1. 查看 Zynq Linux 版本
通过 Tera Term 软件,远程登录到 Zynq 系统上,运行命令:
uname -a
显示如下(系统是 armv7l):

2. 编译适用于 arm 版本的 Grpc 服务可执行程序
Grpc 服务代码目录下,执行命令:
dotnet publish -r linux-arm
// 解决方案下存在多个项目时,使用命令:
dotnet publish 项目名.csproj -r linux-arm
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 服务,成功。如下图所示:

                    
                
                
            
        
浙公网安备 33010602011771号