Joh*_*ott 5 gcc arm cross-compilation
我最近一直在尝试为 ARM 交叉编译程序。但是,当我运行时make,我总是在一分钟或更短的时间内收到一个错误,例如
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lgio-2.0.
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,每次尝试交叉编译程序时都会遇到该错误(除非它并不总是说它找不到 -lgio-2.0。它也很难找到其他东西)。有什么我做错了吗?为什么总是这个错误?我能够成功交叉编译的唯一程序是 bash,但我在其他所有程序上都遇到了问题。我该怎么办?我已经安装了所有的库和东西,因为我能够很好地本地编译程序。
正如穆鲁所说。您需要安装该库的 ARM 架构。然而,它们并未在http://packages.ubuntu.com网站上列出。两者都不是,这样手动管理依赖关系很容易。
注意:设置chroot环境,当我将armhf架构添加到 Ubuntu 15.04 amd64 时,我发现了奇怪的行为。我用了dpkg --add-architecture=armhf。APT 开始抱怨软件包损坏wine并尝试删除所有i386软件包。
添加新的源文件
sudo nano /etc/apt/sources.list.d/arm-repo.list
Run Code Online (Sandbox Code Playgroud)
添加您想要的架构的源代码并发布您拥有的版本。
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports trusty main universe
Run Code Online (Sandbox Code Playgroud)
在此处检查可用的拱门: http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/,因为您可以向上/向下浏览不同的版本。
更新包列表
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)添加 dpkg 配置
sudo nano /etc/dpkg/dpkg.cfg.d/multiarch
Run Code Online (Sandbox Code Playgroud)
用这条线
foreign-architecture armhf
Run Code Online (Sandbox Code Playgroud)根据需要安装需要的包,例如:
sudo apt-get install libglib2.0-0:armhf
Run Code Online (Sandbox Code Playgroud)参考:
| 归档时间: |
|
| 查看次数: |
13452 次 |
| 最近记录: |