以下内容包含在其提供的硬件板上的嵌入式 Linux 发行版的供应商用户手册中
开发人员可以通过FTP或NFS将他们的程序放到X-Linux设备上。运行之前,在开发工作站上使用 ldd 命令检查依赖文件。同时将相关文件放到X-Linux上以保证程序能够正常运行。下面是我们将“syslinux”放到 X-Linux 上的示例:
[root@X-Linux]:/sbin # ldd syslinux
linux-gate.so.1 => (0xb80a0000)
libc.so.6 => /lib/libc.so.6 (0xb7f60000)
/lib/ld-linux.so.2 (0xb80a1000)
[root@X-Linux]:/sbin #
从以上消息来看,/lib/libc.so.6和/lib/ld-linux.so.2syslinux 需要。将这两个文件放到X-Linux上,以保证syslinux能够正常工作。
我将不得不编写在该设备上运行的软件,并且我在堆栈交换上收到的很多建议为我指出了与此建议相矛盾的方向(建议设置特定的嵌入式开发环境、链接到旧版本的 libc、静态链接等) 。供应商提供的上述信息是否安全可靠?
答案1
你能将库复制到您的嵌入式设备,前提是该设备在同一处理器架构系列上运行相同的操作系统。您的设备有一个x86处理器,与 32 位 PC 属于同一系列。因此,如果您的台式计算机上有 32 位 Linux 系统,则可以将库和可执行文件从台式计算机复制到您的设备。
另一方面,我不建议这样做。您最终会得到一堆来源不明的文件,无法管理依赖项、升级或卸载软件。根据我快速浏览后收集到的信息手动的,X-Linux 是一个小型Linux 系统,其设计不具有可扩展性。我的建议是安装另一个 Linux 发行版并与 X-Linux 一起安装或代替 X-Linux。如果其他发行版与 X-Linux 并存,则在chroot(您仍然会受到 X-Linux 内核的限制)。
答案2
我希望他们所说的“开发工作站”是指“嵌入式开发环境”,否则应用程序可能会由于架构差异(无效指令错误)而根本无法运行。
这设备似乎有一个 32 位 x86 处理器,因此设置应该不难,但从(可能的)64 位系统复制库将以灾难告终。