V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dangyuluo
V2EX  ›  C

如何最快地准备交叉编译 target arch rootfs?

  •  
  •   dangyuluo · 2019-10-04 06:28:11 +08:00 · 4192 次点击
    这是一个创建于 1878 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直以来我都有这个问题,假设我需要在 x8664 下交叉编译 aarch64 的应用,那么要使用aarch64-linux-gnu-gcc配合aarch64的 ROOTFS,which 包含了 /usr, /opt, /var 等一系列根目录文件系统。目前我知道的取得 rootfs 的做法有

    1. 直接下载 ubuntu-base,本身就是一个 rootfs,但是缺少我需要的库,比如 Boost。
    2. 找一台 aarch64 机器,安装 ubuntu aarch64,配置好所有的库后再把根目录拷贝出来。这个方法的问题就是慢,不好自动化。
    3. 用 Qemu+Docker 在 x8664 机器上生成一个镜像,再拷贝出根目录下的文件。问题就是 qemu 模拟 aarch64 实在是太慢了

    请问大家有什么又快又稳的办法么?谢谢。

    7 条回复    2019-10-05 20:51:57 +08:00
    ho121
        1
    ho121  
       2019-10-04 08:21:11 +08:00 via Android
    用手机编译?
    kljsandjb
        2
    kljsandjb  
       2019-10-04 08:29:24 +08:00 via iPhone
    yocto build
    kljsandjb
        3
    kljsandjb  
       2019-10-04 08:31:24 +08:00 via iPhone
    你可以用 yocto pop 出你所要的 SDK,你说的 rootfs 其实就是这样的一个东西,提供了你所要的所有依赖,包括头文件,动态链接库等等
    t123yh
        4
    t123yh  
       2019-10-04 09:03:32 +08:00 via Android
    buildroot 可以试试,比较轻量化
    artandlol
        5
    artandlol  
       2019-10-04 20:49:07 +08:00 via Android
    用 arrch64 编译过一整套 HADOOP,建议是不要用模拟器去编译,会出现很多问题。
    WinCloud
        6
    WinCloud  
       2019-10-04 21:36:07 +08:00 via Android
    用 ubuntu-base 吧,boost 交叉编译不难的
    thomaspaine
        7
    thomaspaine  
       2019-10-05 20:51:57 +08:00
    骚年,buildroot 了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:28 · PVG 04:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.