首页 > 系统相关 >Linux 使用交叉编译工具链编译boost

Linux 使用交叉编译工具链编译boost

时间:2023-06-16 18:34:47浏览次数:51  
标签:gcc -- SYSROOT cross 编译 Linux boost COMPILER

参考:Boost交叉编译

执行./bootstrap.sh后,会生成project-config.jam。

修改project-config.jam文件:


#if ! gcc in [ feature.values <toolset> ]
#{
#using gcc : ;
#}

if ! gcc in [ feature.values <toolset> ] { using gcc : : /cross-tools/aarch64-poky-linux-gcc --sysroot=/cross-tools/sysroots ; }

说明:

1.指定交叉编译器:

/cross-tools/aarch64-poky-linux-gcc

2.指定交叉编译环境目录:

--sysroot=/cross-tools/sysroots

然后执行 ./b2 编译

PS:每个语句间的空格不能缺少

 

通过脚本自动完成编译:

#!/bin/sh

#编译工具路径
QL_CROSSTOOLS=/opt/ql_crosstools/ql-ag550qcn-le20-gcc820-v1-toolchain/gcc/usr/bin/arm-oe-linux-gnueabi

#SYSROOT路径
QL_SYSROOT=/home/hrx/work/ql-sysroots
COMPILER_SYSROOT="--sysroot=$QL_SYSROOT"

#编译工具
COMPILER_CC=$QL_CROSSTOOLS/arm-oe-linux-gnueabi-gcc

#编译选项
COMPILER_FLAGS="-march=armv7-a -marm -mfpu=neon -mfloat-abi=hard"

#安装位置
COMPILER_PREFIX=$(pwd)/../target_cross

rm -rf project-config.jam*
./bootstrap.sh --with-libraries=all --prefix=$COMPILER_PREFIX

#将gcc替换成交叉编译工具的gcc并添加编译选项和sysroot路径
sed -i "/using gcc/c using gcc : : $COMPILER_CC $COMPILER_FLAGS $COMPILER_SYSROOT ;" project-config.jam

./b2 install variant=release abi=aapcs address-model=32 architecture=arm binary-format=elf threading=multi toolset=gcc 

 

标签:gcc,--,SYSROOT,cross,编译,Linux,boost,COMPILER
From: https://www.cnblogs.com/linxisuo/p/17486260.html

相关文章

  • Linux项目流程 + 用git将本地代码上传到gitee
    目录前言 一个"进度条"项目git上传代码首次上传代码 安装git  克隆仓库连接 将文件传入路径目录文件上传三板斧后续提交更新git实用用法补充前言 本文将介绍如何使用makefile编写项目并将其上传到git远程仓库。Makefile是一种用于自动化构建、编译和测试软件项目的工具,它可以......
  • CMakeLists --- 设置rpath_link方法 编译报错try using -rpath or -rpath-link)
    指令:add_link_options("LINKER:-rpath-link,${THIRD_LIBS_DIR}")THIRD_LIBS_DIR:需要链接的库的目录作用:编译生成一个可执行文件时,依赖一个动态库A,动态库A同时又依赖动态库B.如果我们没有显示集成动态库B时,链接器会去-rpath-link设置的目录中寻找依赖项。 例子:1.库A,依赖库B......
  • QGIS3.22.0+VS2019 window10编译
    首先感谢博客 济南友泉软件有限公司提供的顺序教程。博客地址:https://blog.csdn.net/qq_26221775/article/details/122792445这篇博客主要是表示编译时遇到的坑。1.一定使用vs2019进行编译。我刚开始想使用vs2017编译。因此遇到了两个坑。(1)vs2017编译qgis_cor......
  • Linux中-bash: /dev/null: Permission denied问题解决
    云上架构2021年08月06日09:19 ·  阅读682​今天在Centos7上运行如下命令 shell复制代码######添加hdfs用户#####useraddhdfs######切换至hdfs用户#####su-hdfs报如下错误 javascript复制代码-bash:/dev/null:Permissiondenied-bash......
  • 1.新手学习Linux 操作命令
     ......
  • [转]Linux 查看CPU实时运行频率
    原文地址:Linux查看CPU实时运行频率-左搜Linux查看CPU实时运行频率执行命令:watchgrep\'cpuMHz\'/proc/cpuinfo结果参考:由于是watch命令,所以在没推出前这个界面会动态刷新。ctrl+c退出......
  • KALI LINUX 官方文档之介绍 --- 我应该使用Kali Linux吗?
       ka1iLinux有什么不同?ka1iLinux是专门为满足专业肾透测试和安全审计的要求而设计的。为了实现这一目标,ka1iLinux中实施了一些反映这些需求的核心变化。1.默认禁用网络服务。ka1iLinux含有systemd钩子,默认情况下它会禁用网络服务。这些钩子允许我们在ka1iLinux上......
  • Linux终端快捷键笔记
    Linux快捷键: Tab  补全机制,可以补全文件名以及命令 ctrl+c 强制中断当前命令程序 ctrl+x 暂停终端当前运行的程序,fg命令可以恢复暂停的程序 ctrl+a 光标迅速回到行首 ctrl+e 光标迅速回到行尾 ctrl+u 剪切(删除)当前光标前的......
  • linux开启vmware混杂模式
    混杂模式是指宿主机上开启网卡的混杂模式,如果虚拟机安装了流量监控软件,想要监控到宿主机,需要开启网卡混杂模式。chmoda+rw/dev/vmnet0就是给你当前运行vmware的用户增加vmnet0的读写权限,也可以为所有用户增加。就是vmware有读写权限,就可以获取到宿主机的流量。https://docs.......
  • 预处理和条件编译
    一、问题引入在编程过程中,使用预处理指令最多的是:#defineBUFFER_MAX_SIZE1024//明示常量#include"xxx.h"//头文件包含但其他预处理指令使用的稍微少点,例如:#ifdef#else#endif#ifndef#if#elif#line#error#pragma。二、解决过程2-1避免用户自定义头文件......