【问题标题】:Cross compiler default include path setup交叉编译器默认包含路径设置
【发布时间】:2012-07-15 21:05:08
【问题描述】:

首先,一些背景知识:我正在尝试在 Beagleboard-xM 上编写适用于 Android 的驱动程序和应用程序。

我已经下载并安装了他们的安卓开发工具包,并且可以按照http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.0_DevelopersGuide 的说明成功构建其中的所有内容

按照http://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf 中的步骤,我已经能够毫无问题地制作自己的骨架内核模块。我可以将.ko文件复制到android设备,insmod,rmmod等。

我厌倦了默认构建提供的基本 shell,并想添加busybox。我尝试按照http://omappedia.org/wiki/Android_Installing_Busybox_Command_Line_Tools 的说明进行操作,但在标准 libc 头文件中出现编译错误。

经过大量研究,我确定 TI android 开发套件中提供的预构建交叉编译器没有搜索正确的路径。

我通过创建自己的 .c 文件确认了这一点,并尝试使用 arm-eabi-gcc blah.c -o blah 并且遇到了相同的结果(无法找到有问题的头文件)

'arm-eabi-gcc -print-prog-name=cc1' -v 给了我这个:

  • 忽略不存在的目录 "/usr/local/google/home/android/cupcake_rel_root/usr/local/include"
  • 忽略不存在的目录“/usr/local/lib/gcc/arm-eabi/4.4.3/include”
  • 忽略不存在的目录“/usr/local/lib/gcc/arm-eabi/4.4.3/include-fixed”
  • 忽略不存在的目录“/usr/local/lib/../arm-eabi/include”
  • 忽略不存在的目录“/usr/local/google/home/android/cupcake_rel_root/usr/include”

在我全新安装的 ubuntu 10.04 中,这些路径都不存在。我使用的交叉编译器位于 /usr/TI-Android/prebuilt/linux-86/toolchain/arm-eabi-4.4.3/。除了运行作为 android 开发工具包的 bit .bin 文件之外,我什么也没做(这看起来更像是简单地从 .bin 文件中提取自身;我不记得它做了其他任何事情)

所以,有几个问题:

  1. 到底是如何通过将交叉编译工具的 bin 放入 $PATH 来构建其他所有东西(即 android、x-loader、u-boot、内核)的(就像操作文档所说的那样)。我认为它(make menuconfig?)在根据可执行文件的位置修复包含路径方面有一些魔力,但是......
  2. 为什么busybox 的工作方式不同,因为它似乎是使用外观相似的基础架构构建的?
  3. 我该如何做才能交叉编译我自己的应用程序?

我假设我错过了一步,应该在预构建的交叉编译器上进行某种安装/配置,但信息非常少。我呼吁你们,开源之神,为我指明穿越这片黑暗和暴风雨的大海的道路。

【问题讨论】:

    标签: gcc cross-compiling


    【解决方案1】:

    对于后人来说,似乎android开发工具包中包含的预构建工具仅足以构建内核,并且不包含libc或其他库头文件。 (NDK 工具是“不同的”,构建环境更加不同,因为它有自己的 libc--bionic 版本。那个构建环境可能能够构建我想要的东西,但我不得不用 Androidy makefile 等)

    我最终不得不获得 Code Sourcery arm-none-linux-gnueabi(必须获得 linux-gnueabi 才能获得所需的 linux 系统头文件),之后一切都运行得相当顺利.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多