使用当前平台的 gcc 编译内核头文件
[arm@localhost tchain3.4.4]#cd ${KERNEL} [arm@localhost kernel]#tar xvfz linux2.6.14.1.tar.gz [arm@localhost kernel]#cd linux2.6.14.1
[arm@localhost linux2.6.14.1]#make ARCH=arm menuconfig [arm@localhost linux2.6.14.1]#make
复制内核头文件
[arm@localhost kernel]#su root
[root@localhost kernel]#mkdir p ${SYSROOT}/usr/include
[root@localhost
kernel]#cp a include/linux ${SYSROOT}/usr/include/linux [root@localhost
kernel]#cp a include/asmi386 ${SYSROOT}/usr/include/asm [root@localhost
kernel]#cp a include/asmgeneric ${SYSROOT}/usr/include/asmgeneric
[root@localhost kernel]#exit
[arm@localhost
kernel]#
译编
glibc 头文件
[arm@localhost
kernel]#cd ${SRC}
[arm@localhost
chain3.4.4]#tar xvfz glibc2.3.5.tar.gz [arm@localhost chain3.4.4]#patch d
glibc2.3.5 p1 < ioperm.c.diff [arm@localhost glibc2.3.5]#cd glibc2.3.5
[arm@localhost
glibc2.3.5]#tar xvfz ../glibclinuxthreads2.3.5.tar.gz [arm@localhost
chain3.4.4]#cd ..
[arm@localhost
chain3.4.4]#mkdir BUILD/glibc2.3.5headers [arm@localhost chain3.4.4]#cd
BUILD/glibc2.3.5headers
[arm@localhost
glibc2.3.5headers]#../../glibc2.3.5/configure prefix=/usr host=${TARGET}
\
enableaddons=linuxthreads
–withheaders=${SYSROOT}/usr/include [arm@localhost glibc2.3.5headers]#su
root
[root@localhost
glibc2.3.5headers]#make crosscompiling=yes install_root=${SYSROOT}
installheaders [root@localhost glibc2.3.5headers]#touch
${SYSROOT}/usr/include/gnu/stubs.h
[root@localhost
glibc2.3.5headers]#touch ${SYSROOT}/usr/include/bits/stdio_lim.h
[root@localhost glibc2.3.5headers]#exit
[arm@localhost
glibc2.3.5headers]#
注意: prefix=/usr :是 gcc 寻找库的搜索路径。
编译
gcc 第一阶段
[arm@localhost
glibc2.3.5headers]#cd ${SRC} [arm@localhost chain3.4.4]#tar xjvf
gcc3.4.4.tar.bz2 [arm@localhost chain3.4.4]#patch d gcc3.4.4 p1 <
flow.c.diff [arm@localhost chain3.4.4]#patch d gcc3.4.4 p1 < tlinux.diff
[arm@localhost chain3.4.4]#mkdir p BUILD/gcc3.4.4stage1 [arm@localhost
chain3.4.4]#cd BUILD/gcc3.4.4stage1
[arm@localhost
gcc3.4.4stage1]#../../gcc3.4.4/configure prefix=${PREFIX}
target=${TARGET} \
enablelanguages=c
withsysroot=${SYSROOT}
注意:不能加上"disableshared"选项。 [arm@localhost
gcc3.4.4stage1]#make allgcc [arm@localhost gcc3.4.4stage1]#su root
[root@localhost gcc3.4.4stage1]#make installgcc [root@localhost
gcc3.4.4stage1]#exit [arm@localhost gcc3.4.4stage1]#
编译完整的
glibc
[arm@localhost
gcc3.4.4stage1] #cd ${SRC} [arm@localhost tchain3.4.4]#mkdir
BUILD/glibc2.3.5 [arm@localhost tchain3.4.4]#cd BUILD/glibc2.3.5
[arm@localhost glibc2.3.5]#BUILD_CC=gcc CC=${CROSS_COMPILE}gcc
AR=${CROSS_COMPILE}ar \ RANLIB=${CROSS_COMPILE}ranlib AS=${CROSS_COMPILE}as
LD=${CROSS_COMPILE}ld \
../../glibc2.3.5/configure
prefix=/usr build=i386redhatlinux host=armunknownlinuxgnu \
target=armunknownlinuxgnu
without thread
enableaddons=linuxthreads \
withheaders=${SYSROOT}/usr/include
说明:
prefix: 指定安装路径。
target: 指定目标平台。
host: 指定当前平台。
build: 指定编译平台。
withsysroot: 用于指定编译所需要的头文件,及链接库。
enableaddons: 加入其它的库,如线程库等。
enablelanguages: 指定 gcc 所支持的语言。
[arm@localhost
glibc2.3.5]#make [arm@localhost glibc2.3.5]#su root
[root@localhost
glibc2.3.5]#make install_root=${SYSROOT} install [root@localhost
glibc2.3.5]#exit
[arm@localhost
glibc2.3.5]#
编译完整的 gcc
[arm@localhost
glibc2.3.5]#cd ${SRC} [arm@localhost tchain3.4.4]#mkdir BUILD/gcc3.4.4
[arm@localhost tchain3.4.4]#cd BUILD/gcc3.4.4
[arm@localhost
gcc3.4.4]#../../gcc3.4.4/configure prefix=${PREFIX} target=${TARGET} \
enablelanguages=c
withsysroot=${SYSROOT} [arm@localhost gcc3.4.4]#make
[arm@localhost
gcc3.4.4]#su root [root@localhost gcc3.4.4]#make install [root@localhost
gcc3.4.4]#exit [arm@localhost gcc3.4.4]#
使用当前平台的 gcc 编译内核头文件的更多相关文章
- gcc编译时头文件和库文件搜索路径
特殊情况:用户自定义的头文件使用#include"mylib"时,gcc编译器会从当前目录查找头文件 一.头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始( ...
- linux gcc 编译时头文件和库文件搜索路径
一.头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INC ...
- Kali-linux准备内核头文件
内核头文件是Linux内核的源代码.有时候,用户需要编译内核头文件代码,为以后使用内核头文件做准备,本节将介绍编译内核头文件的详细步骤. 准备内核头文件的具体操作步骤如下所示. (1)更新软件包列表. ...
- 如何指定GCC的默认头文件路径
如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631============ ...
- linux 内核头文件 linux kernel header
概述:在进行有关系统软件的安装的时候(编译一个新的驱动,或者安装一个系统级别的测试工具,例如systemtap),经常需要重新编译内核,相应的问题往往与内核头文件有关.那么,什么是内核头文件,为什么需 ...
- Linux内核头文件与内核与库的关系
看上一篇文章中对buildroot的介绍,里面的文档第 3.1.1.1 Internal toolchain backend 节内容 C库会去访问Linux kernel headers(*.h)文件 ...
- centos8 安装vmware需要的内核头文件 kernel-headers.
centos8 安装vmware需要的内核头文件 kernel-headers. uname -r (查看内核版本) rpm -qa kernel-headers (查看kernel-headers版 ...
- gcc和arm-linux-gcc 头文件寻找路径【转】
原文地址:http://blog.chinaunix.net/uid-29145190-id-3867605.html 在LINUX程序设计当中,经常会遇到头文件包含的问题,那么这些头文件到底在哪个路 ...
- linux下gcc默认搜索头文件及库文件的路径
一.头文件gcc 在编译时如何去寻找所需要的头文件:※所以header file的搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC ...
随机推荐
- python_way day15 HTML-DAY2、 回顾HTML-CSS 标签(css强制生效),JS(数据类型,时间处理,作用域)
python_way day15 HTML-DAY2 html-css回顾 javascript 一.html-css回顾 增加默认值: . 强制生效,就算在上面,被覆盖上了也会生效 解决缩小页面混乱 ...
- struts2自定义拦截器 设置session并跳转
实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆. 为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟 修改web.xml view plainco ...
- Zabbix监控搭建
目录 Zabbix概述 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 )zabbix由 2 部分构成,zabbix ...
- 搭建WordPress博客程序库
搭建WordPress博客程序库 wordpress简介 wordpress是一套利用PHP语言和Mysql数据库开发的开源免费的Blog(博客,网站)程序,用户可以在支持PHP环境和Mysql数据库 ...
- 【HDOJ】P2058 The sum problem
题意很简单就是给你一个N和M,让你求在1-N的那些个子序列的值等于M 首先暴力法不解释,简单超时 再仔细想一想可以想到因为1-N是一个等差数列,可以运用我们曾经学过的只是来解决 假设开始的位置为s,结 ...
- ARM 寄存器 和 工作模式了解
一. ARM 工作模式 1. ARM7,ARM9,ARM11,处理器有 7 种工作模式:Cortex-A 多了一个监视模式(Monitor) 2. 用户模式:非特权模式,大部分任务执行在这种模式 ...
- Tomcat7安装和配置以及优化
安装Tomcat7 下载安装方法一: 直接下载Tomcat7: wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0 ...
- Tomcat服务器优化(内存,并发连接数,缓存)
a) 内存优化:主要是对Tomcat启动参数进行优化,我们可以在Tomcat启动脚本中修改它的最大内存数等等.b) 线程数优化:Tomcat的并发连接参数,主要在Tomcat配置文件中server.x ...
- CSIC_716_20191127【组合,封装、类的私有属性方法、property装饰器】
组合 what? 组合是指一个对象中,包含另一个或多个对象. why? 减少代码的冗余. How? 在类中加入其他类的对象,实现跨类对象之间的联动. 耦合度 软件设计要 高内聚 ...
- JAVA去除抖音视频的水印源码!!!
@PostMapping("geturl") public DataResponse decodeDouiyin(@RequestBody DouyinRequest req ) ...