首页 > 其他分享 >glibc库的交叉编译及使用

glibc库的交叉编译及使用

时间:2024-06-21 21:42:51浏览次数:23  
标签:gnueabi 交叉 -- glibc 编译 linux arm 2.11

1. 环境准备

宿主系统:ubuntu 10.04

交叉编译工具:arm-fsl-linux-gnueabi 版本4.4.4

下载glibc的源码包:ftp://ftp.gnu.org/gnu/glibc/glibc-2.11.1.tar.gz

下载glibc-ports的源码包:ftp://ftp.gnu.org/gnu/glibc/glibc-ports-2.11.tar.gz

2. 分别解压缩文件:

把glibc-ports-2.11文件夹重命名为ports放入glibc-2.11.1中;

tar -zxvf glibc-2.11.1.tar.gz

tar -zxvf glibc-ports-2.11.tar.gz

在与glibc-2.11.1的同级目录下下建立一个文件夹叫:glibc

mkdir glibc

在glibc目录下编写配置脚本:

cd glibc

编译器的路径为:
../cross_compiler/arm-fsl-linux-gnueabi/...

glibc-2.11.1的路径为:
../glibc.2.11.1

3. 编译脚本

点击查看代码
export SRCROOT=${PWD}/..
export CC_PATH=${SRCROOT}/cross_compiler/arm-fsl-linux-gnueabi
export CROSS_COMPILE=${CC_PATH}/bin/arm-none-linux-gnueabi-
export CC=${CROSS_COMPILE}gcc
export ARCH=arm
echo "CFLAGS +=-O2 -U_FORTIFY_SOURCE -fno-stack-protector" >configparms
../glibc-2.11.1/configure  --host=arm-linux-gnueabi --enable-add-ons \
--with-include=${CC_PATH}/arm-fsl-linux-gnueabi/include/ \
--prefix=${SRCROOT}/glibc_bin \
libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes \
--enable-kernel=2.6.0 --with-tls --disable-profile
### 3.1 参数说明 --host=arm-linux-gnueabi 表示目标机器为 arm-linux-gnueabi

--enable-add-ons 表示把我们加入的ports加进编译。

--with-include=${CC_PATH}/arm-fsl-linux-gnueabi/include/ 就是交叉编译工具的头文件路径

--prefix=${SRCROOT}/glibc_bin 表示安装路径

libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes 这两个其实我不知道是啥意思,应该是两个开关,根据网上资料说不加这两个可能会引起某些错误
我自己是没有发现,不过还是加进去吧。
--enable-kernel=2.6.0 设置内核最低版本
--with-tls --disable-profile 打开tls
echo "CFLAGS +=-O2 -U_FORTIFY_SOURCE -fno-stack-protector" >configparms

编译
make

安装
make install

标签:gnueabi,交叉,--,glibc,编译,linux,arm,2.11
From: https://www.cnblogs.com/wang-lp/p/18261476

相关文章

  • Android14适配编译问题
    问题:AAPT2processunexpectedlyexit.Erroroutput:aapt2W06-2609:56:2382808280LoadedArsc.cpp:682]Unknownchunktype‘200’.解决:将Gradle版本升级至8.0.1以上问题:Task:app:shrinkReleaseResFAILEDExecutionfailedfortask‘:app:shrinkReleaseRes’.A......
  • 信道编码——Turbo码Matlab编译码实现与性能分析
    第三篇博客感言“不要成为一个只会用Matlab仿真SNR-BER的猴子。”前段时间比较焦虑就业,到处搜索通信的就业情况。很多人说通信日薄西山,不无道理,与前十几二十年相比,现在的确是哑火了,5G、6G带来的变革远不如3G、4G那么震撼,并且电子信息专业学生越来越多,就业岗位和待遇却不见......
  • python pyinstaller打包的exe 反编译问题记录 破解加密
    首先是用pyinstxtractor这个网上很多教程,不详说了。生成一个xxx.exe_extracted目录生成过程中,如果pyinstaller用key加密了,会[!]Error:FailedtodecompressPYZ-00.pyz_extracted\Cython\__init__.pyc,probablyencrypted.Extractingasis. 这个说是fail了,其实可以解......
  • C++程序编译 错误提示和评测状态
    编译常见错误提示1.[Error]expected';'before'cout'。在cout前面,缺少一个分号。2.[Error]'arr'wasnotdeclaredinthisscope。未定义变量名arr。3.[Error]ldreturned1exitstatus。重复运行错误(上一个运行的程序,输入窗口没有关掉)。  或者main写错了。......
  • Chromium 开发指南2024 Mac篇-编译前的准备工作(一)
    1.引言Chromium是一款开源的网页浏览器项目,作为GoogleChrome浏览器的基础,其卓越的性能和广泛的应用使其成为众多开发者研究和学习的对象。对于希望深入了解浏览器内核,或是计划在Chromium基础上开发自定义浏览器的开发者来说,掌握Chromium的编译和开发流程是至关重要的......
  • 【MT9669】PM51代码编译环境安装及使用案例
    最近在调试GPIO开机时,发现一直配置不通,排查到最后是因为导入支持PMUART开机改到的PM.bin文件把GPIO开机功能屏蔽掉了,回退后验证配置GPIO唤醒开机是能实现的。于是综合确认后,需要改到PM.bin文件,下面是相应的编译环境安装及针对本需求做的处理流程:1.在Windows操作系统下,双击“c......
  • 【深度学习驱动流体力学】OpenFOAM 编译完成Bin目录命令计算流体力学详解
    OpenFOAM译完成Bin目录下包含了多个关键命令和工具,用于管理、运行和优化仿真过程中的各个环节。这些命令涵盖了从创建新案例、运行仿真到分析结果的全过程,包括处理网格、设置物理条件、运行求解器和后处理数据等多个方面。每个命令和工具都有其特定的功能和操作方法,用户......
  • Rust 交叉编译环境搭建
    一、安装Rust1.官方安装$curl--proto'=https'--tlsv1.2https://sh.rustup.rs-sSf|sh安装时可能存在流量不稳定导致安装失败,可以更换源,使用国内的crates.io镜像。2.更换Rust镜像源进行安装(1)更换Rustup镜像源     修改~/.bashrc,追加如下内容exportR......
  • vue模板编译器
    vue模板编译器import{ASTElement,compile}from'vue-template-compiler';import{TableColumnDesc}from"@/components/table/base-table/type.ts";exportconstcodeAdapter=function(code:string):{tableCode:string;columns:TableC......
  • <编译器> 7. 中间代码 | 4. 主要语句的IR树
    1.调用output:=concat(output,s)2.数组,赋值a[i+1]:=0数组变量a[i]为a(基地址)+i*w(偏移量)3.while循环伪代码:whilecnddobodystart:ifnotcndgotodonebodygotostartdone两种实现:4.for循环:变量声明+while循......