boost库交叉编译ARM版本

简介: boost库交叉编译ARM版本

1.下载boost源码:

地址:https://sourceforge.net/projects/boost/files/boost/


2.编译:


1)解压,cd 到目录

–show-libraries可查看所有库,如下

Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86/b2

The following Boost libraries have portions that require a separate build
and installation step. Any library not listed here can be used by including
the headers only.

The Boost libraries requiring separate building and installation are:
link.jam: No such file or directory
    - atomic
    - chrono
    - context
    - coroutine
    - date_time
    - exception
    - filesystem
    - graph_parallel
    - iostreams
    - locale
    - log
    - math
    - mpi
    - program_options
    - random
    - regex
    - serialization
    - signals
    - system
    - test
    - thread
    - timer
    - wave


使用 --without-libraries=, , , 逗号隔开去掉不想编译的库,–prefix指定编译后的安装路径

这里去掉了pytho和graph,其他的全部编译

./bootstrap.sh --without-libraries=python,graph --prefix=/home/ubuntu/workplace/asio/boost_lib


生成有 b2 和 bjam ,以及一个 project-config.jam 的文件,修改该文件的一行(指定自己的编译器):

# Boost.Build Configuration
# Automatically generated by bootstrap.sh

import option ;
import feature ;

# Compiler configuration. This definition will be used unless
# you already have defined some toolsets in your user-config.jam
# file.
if ! gcc in [ feature.values <toolset> ]
{
    using gcc : : /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc ; 
}

project : default-build <toolset>gcc ;

# List of --with-<library> and --without-<library>
# options. If left empty, all libraries will be built.
# Options specified on the command line completely
# override this variable.
libraries =  --without-python --without-graph ;

# These settings are equivivalent to corresponding command-line
# options.
option.set prefix : /home/fens/workplace/asio/boost_lib ;
option.set exec-prefix : /home/fens/workplace/asio/boost_lib ;
option.set libdir : /home/fens/workplace/asio/boost_lib/lib ;
option.set includedir : /home/fens/workplace/asio/boost_lib/include ;

# Stop on first error
option.set keep-going : false ;


注意:这中间是有空格的,如下图标示的地方:


特别是最后一个分号前是有空格的,要不然会出错。


2)执行 ./bjam 即可,这是编译,创建的 lib 文件默认在 stage 文件夹


3)编译完后,执行 ./bjam install 即进行安装到上面 --prefix指定的目录

编译完成的库文件如下(包括静态版本和动态版本):


boost库有80%是只需要引用头文件就可以使用的,比较方便


参考:

boost库交叉编译(Linux生成ARM的库) - findumars - 博客园

https://www.cnblogs.com/findumars/p/7461244.html

目录
相关文章
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
5947 4
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
Ubuntu NoSQL Linux
在Ubuntu上用Qemu模拟ARM版本的Fedora39
在Ubuntu上用Qemu模拟ARM版本的Fedora39
【Azure 服务总线】Azure门户获取ARM模板,修改Service Bus的TLS版本
【Azure 服务总线】Azure门户获取ARM模板,修改Service Bus的TLS版本
192 0
|
Ubuntu 编译器 C语言
蓝易云 - ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)
以上就是在Ubuntu上安装Boost库并为SOME/IP的X86和ARM架构编译做准备的全部步骤。
325 0
|
10月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1390 61
|
10月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
932 10
|
11月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
358 1