【问题标题】:Developing C++ applications to run on embedded Linux setup开发 C++ 应用程序以在嵌入式 Linux 设置上运行
【发布时间】:2012-07-04 13:55:15
【问题描述】:

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

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

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

【问题讨论】:

  • 并引用您的客户支持:We offer free software support resource for your reference only. Our resource might lead you to other websites. It is to save your research time and we don't have any obligation or responsibility to provide further support or answer questions on your application. If you need any special assistance, please contact your account manager.
  • @Bo 感谢您的第一个链接 - 至少是省略号之后的部分。
  • 看...我刚刚从您提供的链接中检查了文档,他们明确指出:8.14. Develop Application X-Linux is a run-time environment for developers and does not provide tool-chain. Developers have to make their programs on desktop PC and put them onto X-Linux to run. Refer to below section for more.。老实说,这是我讨厌看到的。但仍然与他们联系并征求他们的建议,他们可能会让您的生活更轻松
  • @Bo 我已经尝试过了,但没有任何进展。尽管他们说它受支持,但还是要花几周的时间来安装(刚刚安装)ubuntu。我无处可去,我的双手被束缚,因为它与工作有关,这是我必须处理的。因此在这里请求帮助(任何帮助)。

标签: c++ linux embedded-linux glibc


【解决方案1】:

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

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

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

我会说只是尝试复制二进制文件,如果遇到任何问题,请报告。

【讨论】:

  • 非常感谢 - 我会试一试。根据他们的信息,当前版本使用 glibc 2.8.90
  • 终于成功安装了这个 Xlinux 所以现在至少我有一个起点(这是我想要的)所以非常感谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多