本地旅游网站模版,建立一个网站需要什么技术,ppt模板网免费下载,没有备案的网站 推广背景介绍
自制了一块Linux板卡(基于全志T113i) 厂家给的SDK和根文件系统能够提供的GLIBC的版本比较低 V2.25/GCC 7.3.1 这个版本是无法运行dotnet以及dotnet生成的AOT应用的 我用另一块同Cortex-A7的板子运行dotnet的报错 版本不够#xff0c;运行不了 而我的板子是根本就识…背景介绍
自制了一块Linux板卡(基于全志T113i) 厂家给的SDK和根文件系统能够提供的GLIBC的版本比较低 V2.25/GCC 7.3.1 这个版本是无法运行dotnet以及dotnet生成的AOT应用的 我用另一块同Cortex-A7的板子运行dotnet的报错 版本不够运行不了 而我的板子是根本就识别不了这个可执行文件 查询各种资料得知 目前net9的运行条件: 版本确实不够ARM32必须要GLIBC 2.35以上才可以或者安装Ubuntu22.04才行 结合我自己的情况
板卡SDK开发虚拟机环境目前我不熟悉怎么升级其自带GCC编译器和更换基于Ubuntu22.04的根文件系统这个方案暂时不行板卡目前是基于buildroot的根文件系统没有包管理器也没办法在线安装直接替换板卡目前的GLIBC会有很多很多不可知的问题譬如无法启动等等麻烦出现
基于这些我只能是各种找方法来变相的找方法: 然后我发现了一个很棒的方法: patchelf 参考连接1 我去gayhub下载了这个patchelf的arm版本并且也下载了源码使用厂家给的交叉编译器编译了交叉编译版本以备不时之需。 然后我将我目前用于编译ARM32位平台的DOTNET开发环境-树莓派3B的编译器arm-linux-gnueabihf的lib文件夹下的文件全部复制导出到我自制的板卡上 然后经过我的反复测试事情出现转机接近可以运行了 [NET9_TEST是我的NET9 AOT原生编译的产物]
patchelf --set-rpath [来自树莓派3B的arm-linux-gnueabihf的lib文件夹的绝对路径] ./NET9_TEST
patchelf --set-interpreter [来自树莓派3B的arm-linux-gnueabihf的lib文件夹的绝对路径]/ld-linux-armhf.so.3 ./NET9_TEST之后他居然已经能够运行了虽然有问题 这个提示是要我装这个libicu这个库 我在树莓派上装好然后拷贝过来 放到arm-linux-gnueabihf的lib文件夹–测试失败 放到/lib文件夹下测试失败 直接在NET9工程里加这个库测试失败 链接 最后参考这个帖子 修改环境变量,关掉这个国际化功能,国际化关掉的影响可以看这个链接 翻译了下
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT1运行成功
同样的dotnet运行时也可以采取同样的方式来做也可以运行了
patchelf --set-rpath /run/media/mmcblk1p1/Rp3-Gcc/arm-linux-gnueabihf/ ./dotnet
patchelf --set-interpreter /run/media/mmcblk1p1/Rp3-Gcc/arm-linux-gnueabihf/ld-linux-armhf.so.3 ./dotnet这个patchelf只需要对可执行文件执行一次就可以了之后只要可执行文件没有变更应该就不要重复执行了 目前这个方式就差这个国际化还不够完美看看后续能不能解决这个libicu找不到的问题就很完美了