c++ - 如何在 Ubuntu 14.04 上的交叉编译器 g++-arm-linux-gnueabifh 中安装 libbz2

标签 c++ linux ubuntu arm cross-compiling

我在 amd64 机器上使用 arm-linux-gnueabihf-g++-4.8 交叉编译提升目标 ARM 32 位架构。我的操作系统是 Ubuntu 14.04。

构建库 libboost_iostreams 失败,因为 libbz2 没有随编译器一起提供。以下是错误详情,

/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: 找不到 -lbz2 collect2:错误:ld 返回了 1 个退出状态。

很难弄清楚如何为 arm-linux-gnueabihf-g++-4.8 安装这个 libbz2。网上没找到太多文档。需要一些帮助。非常感谢!

最佳答案

我将从 Debian jessie 存储库安装 libbz2-1.0:armhf。

实际上,它也存在于 Ubuntu 存储库中。

配置包管理器来管理 ARM 包:

sudo dpkg --add-architecture armhf

Ubuntu 14.04 代号是“trusty”,因此通过将行添加到 /etc/apt/sources.list 文件来添加 ARM 存储库以实现 trusty:

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

然后更新包索引:

sudo apt-get update

为 ARM 安装 libbz2(但如果它要求删除任何包,则中止):

sudo apt-get install libbz2-1.0:armhf

如果 apt-get 要求删除一半系统以便安装像 libc6:armhf、libgcc:armhf、build-essential:armhf 等大东西,那么会有一个依赖项解析 session 先。对此没有准确的指南。

此外,还有一件小事:您可能希望将 [arch=amd64,i386] 注释添加到 /etc/apt/sources.list 中的所有其他存储库以避免警告。

关于c++ - 如何在 Ubuntu 14.04 上的交叉编译器 g++-arm-linux-gnueabifh 中安装 libbz2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664551/

相关文章:

node.js - 当我在项目中运行 Mocha 测试时,测试后无法终止

c++ - 为什么重载 operator new 会改变 new[] 的行为?

c++ - 绕过自动生成的赋值运算符(VS bug?)

c++ - 在 G++ 编译命令中包含 -std=c++0x 有什么意义?

linux - 使用 grep 就像 awk 中的条件一样

python - 为所有简单的 pip 安装包授予 sudo 权限

ruby-on-rails - 启动 rails 服务器

c++ - 无法将 insert() 结构插入 unordered_set

c++ - 为什么容器分配器内部的 sizeof(T) 与单独分配器中的不同?

linux - 在ELF中,为什么 header 需要在一个段中?