.NET 编写的控制台应用程序依赖项

.NET 编写的控制台应用程序依赖项

我在 VB.net 中编写了一个免费软件控制台应用程序,我已对其进行了微调并在无头 Raspberry Pi Bullseye 中成功进行了测试。在检查其依赖关系后我还编写了一个安装脚本(https://bit.ly/multilarm-linux)。然而,在新的仿真(VirtualBox 上的 Raspberry Pi Bookworm 仿真)上,尽管安装了依赖项(公平地说,除了 Bass 驱动程序之外,不会安装新的软件包),ldd 输出如下:

admin@raspberry:~ $ ldd ./Multilarm
linux-vdso.so.1 (0x00007fff501f5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8fa34d1000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8fa34cb000)
libz.so.1 => not found
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8fa34c1000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8fa34a7000)
libstdc++.so.6 => not found
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8fa3361000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8fa318d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8fa3f87000)

我尝试安装 lib64z1 和 lib32stdc++6 但没有成功。我的应用程序已将 .net 框架文件作为单个包包含。我想知道这个问题是否与 RPi 内核是 64 位(uname -m x86_64)在 32 位命名空间中运行这一事实有关。

admin@raspberry:~ $ locate libz.so.1
/usr/lib/i386-linux-gnu/libz.so.1
/usr/lib/i386-linux-gnu/libz.so.1.2.11
admin@raspberry:~ $ locate libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.28
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.28
/usr/share/gdb/auto-load/usr/lib/i386-linux-gnu/libstdc++.so.6.0.28-gdb.py
/usr/share/gdb/auto-load/usr/lib32/libstdc++.so.6.0.28-gdb.py

请帮忙。

答案1

排序:需要的 64 位库:

aptDepends=( 
               zlib1g:amd64
               lib32stdc++6:amd64
               libasound2-plugins:amd64
           )

sudo apt-get install -y "${aptDepends[@]}"

相关内容