帮助进行 ARM 交叉编译

帮助进行 ARM 交叉编译

我最近一直在尝试交叉编译 ARM 程序。但是,当我运行 时make,我总是在一分钟或更短的时间内收到错误,内容如下

/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lgio-2.0.

让我困惑的是,每次我尝试交叉编译程序时都会出现这个错误(除了它并不总是说它找不到 -lgio-2.0。它在查找其他东西时也遇到了麻烦)。我做错了什么吗?为什么总是出现这个错误?我能够成功交叉编译的唯一程序是 bash,但其他所有程序都出现了问题。我该怎么办?我已经安装了所有库和东西,因为我能够很好地本地编译程序。

答案1

正如 muru 所说。您需要安装该库的 ARM 体系结构。但它们未在http://packages.ubuntu.com站点。两者都不是,这样可以很容易地手动管理依赖关系。

笔记:设置环境,当我将架构添加到我的 Ubuntu 15.04 amd64chroot时,我发现了奇怪的行为。我使用了。APT 开始抱怨包损坏并试图删除所有包。armhfdpkg --add-architecture=armhfwinei386

  1. 添加新的源文件

    sudo nano /etc/apt/sources.list.d/arm-repo.list
    

    添加您想要的架构的来源并发布您拥有的版本。

    deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports trusty main universe
    

    在这里检查可用的拱门: http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/您可以向上/向下浏览不同的版本。

  2. 更新包列表

    sudo apt-get update
    
  3. 添加 dpkg 配置

    sudo nano /etc/dpkg/dpkg.cfg.d/multiarch
    

    用这行

    foreign-architecture armhf
    
  4. 根据需要安装需要的包,例如:

    sudo apt-get install libglib2.0-0:armhf
    

参考:

答案2

您也可以下载该软件包,使用 arm-linux-gnueabihf 进行交叉编译,并将库放在 /usr/ 中 arm-linux-gnueabihf 编译器目录的相应文件夹中

相关内容