首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通常交叉编译特定目标的任何开放源代码的步骤是什么?

问通常交叉编译特定目标的任何开放源代码的步骤是什么?
EN

Stack Overflow用户
提问于 2013-07-31 16:59:56
回答 1查看 1K关注 0票数 0

我的工作通常是从互联网上获取一个开放源码。交叉编译它与MIPSEL工具链,并获得二进制。我很费劲地交叉编译代码。交叉编译任何源包的一般步骤是什么。我使用Linux平台。比如CC,ld,还有什么?每个源代码都有不同的结构,我无法理解包之间的相似性。我如何交叉编译它?是否有任何系统的步骤来完成它?请给我建议。

EN

回答 1

Stack Overflow用户

发布于 2013-07-31 17:33:17

我只能假设你下载了一些随机的开放源码软件tarball并且现在被卡住了。我只能给您一些提示,因为我还没有发现一个通用的、一刀切的解决方案,在找到最适合您需要的方法之前,您可能需要做一些实验。而且我还没有遇到过一项非常重要的交叉编译工作,它从头到尾都没有经过一些调整、摆弄和耐心。

  1. 基本的解决方案是:您需要一个平台的工具链,如果您的平台需要预先构建的满足您需求的东西,请看一看这里,或者转到丹·凯格尔的交叉凳子页面,它将在很大程度上自动为平台创建一个工具链,并且该工具链将允许您编译和链接除标准库之外没有其他依赖关系的所有程序。
  2. 许多开源包都附带了自动配置脚本,这些脚本具有交叉编译能力,即添加--target=xxxx实际上会使它们使用正确的交叉编译器。这通常是可行的,但可能需要先下载、交叉编译/安装一些库。主要问题将是一个autoconf脚本,它试图编译一小部分代码来研究其输出,以确定环境的某些特性。有时,这可以通过手动修改配置或通过例如configure --without-xxxx禁用一些不需要的特性来解决。
  3. 如果您的目标系统是嵌入式Linux工具,如建筑工,OpenEmbedded或ELDK不仅会自动创建可用的工具链,而且还会对许多常用库进行交叉编译,并为Linux添加包。这些工具还允许您将其他包添加到它们的目标列表中(例如您创建或购买的自定义应用程序),但这可能涉及手动解决第二部分中解释的一些问题。但是在那里,这些工具附带的补丁脚本可以用来学习常用的技巧,以解决编译问题。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17976477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档