我最近一直在尝试为 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,但我在其他所有方面都遇到了问题。我该怎么办?我已经安装了所有的库和东西,因为我能够很好地本地编译程序。
正如穆鲁所说。您需要安装该库的 ARM 体系结构。但是它们没有在http://packages.ubuntu.com网站上列出。两者都不是,以这种方式手动管理依赖项很容易。
注意:设置一个
chroot
环境,当我将armhf
架构添加到我的 Ubuntu 15.04 amd64 时,我发现了奇怪的行为。我用过dpkg --add-architecture=armhf
。APT 开始抱怨包损坏wine
并试图删除所有i386
包。添加新的源文件
添加您想要的架构的源代码并发布您拥有的。
在此处检查可用的 arch:http: //ports.ubuntu.com/ubuntu-ports/dists/trusty/main/因为您可以向上/向下浏览不同的版本。
更新包列表
添加一个dpkg配置
用这条线
根据需要安装需要的包,例如:
参考:
也可以下载安装包,使用arm-linux-gnueabihf交叉编译,将库放在/usr/下arm-linux-gnueabihf编译目录对应文件夹下