gpt4 book ai didi

c++ - 开发 C++ 应用程序以在嵌入式 Linux 设置上运行

转载 作者:太空狗 更新时间:2023-10-29 21:26:31 25 4
gpt4 key购买 nike

我需要编写一个 C++ 应用程序以在嵌入式 Linux 设置(DMP Vortex86DX 处理器)上运行。供应商提供 minimal linux installation image 可以安装到板上并包含适当的硬件驱动程序。我的问题源于我之前关于在 particular kernel to run on a different kernel 上编写 Linux 软件的问题的答案。 .在编写有关确保兼容性的软件时,我真的不知道从哪里开始。

我的本​​能方法是在嵌入式设备和我的桌面开发机器上安装相同版本的 g++,在开发机上编写应用程序,复制到开发板并在那里编译。虽然这看起来很疯狂,但我很难相信这就是嵌入式软件的开发方式。关于我之前问题的答案,有没有一种方法可以简单地在我的桌面上构建,但使用嵌入式设备上存在的 glibc 版本——如果是这样,如何强制链接到特定版本?或者是否可以静态构建所有内容,以便应用程序不会动态链接到任何内容(我怀疑这是可能的)。

我对嵌入式开发完全是个新手,除非我能得到一些好的建议或资源,否则我会预见到几个月的挫败感。任何关于从哪里开始的指示或建议,无论它们看起来多么简单或微不足道,我们都将非常感激 - 关于嵌入式内容,我真的是从最底层开始。

最佳答案

好的,鉴于 Vortex86SX/DX/MX声称与 x86 兼容,一小部分编译器开关应该使您能够为目标机器编译代码:-m32 以确保 32 位代码,并且没有 -march 开关目标一个特定的 CPU。

然后您需要链接您的代码。只要您不使用任何花哨的东西,而是简单建立的 glibc 函数,我希望 ABI 在您的开发机器和嵌入式系统上是相同的。换句话说,您针对您的主机库进行编译,将二进制文件复制到嵌入式系统,它应该只使用那里可用的库运行。

如果 X-Linux 使用其他一些 libc,比​​如 uclibc或类似的,那么你的主机上需要一个交叉编译器。我在这方面对 Ubuntu 没有什么经验,但我知道 Gentoo linux 的 sys-devel/crossdev 包使得交叉编译器的生成非常容易。这可以用于不同的体系结构(在您的情况下不需要)和不同的库(例如 uclibc)。

我想说的是简单地尝试复制二进制文件,如果您在那里遇到任何问题,请报告。

关于c++ - 开发 C++ 应用程序以在嵌入式 Linux 设置上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com