linux 交叉编译链,嵌入式 linux 交叉编译工具链

linux

1

PCX86 CPUARMCPUX86 CPUARM CPULinux

LinuxPCPCbinutilsgccglibc 3 libc c glibc uClibcdietlibc newlib

2 gccbinutilscglibc Linux

GNUGCCGCCGNUCPU-PLATFORM-OSx86/i386 i686-pc-linux-gnuARMarm-linux-gnu

Crosstool ftp.arm.kernel.org.uk

1

jiabing/home/jiabingarmlinux# cd /home/jiabing# mkdir armlinuxarmlinux3 build-toolskernel tools# cd armlinux# mkdir build-tools kernel tools build-tools binutilsgccglibc kernel tools 2

# export PRJROOT=/home/jiabing/armlinux# export TARGET=arm-linux# export PREFIX=$PRJROOT/tools# export TARGET_PREFIX=$PREFIX/$TARGET# export PATH=$PREFIX/bin:$PATHexportexportbashrcexport3

BinutilsGNUBinutilsaddr2line arasc++filtgprofldnmobjcopyobjdumpranlibreadelfsizestrings striplibibertylibbfdlibopcodes 4Binutils

Binutilsbinutils-2.15binutils-2.15.tar.bz2# cd $PRJROOT/build-tools# tar xjvf binutils-2.15.tar.bz2Binutils# cd $PRJROOT/build-tools# mkdir build-binutils# cd build-binutils# ../ binutils-2.15/configure --target=$TARGET --prefix=$PREFIXtarget arm-linux --prefix check Makefile make# make# make install/home/mike/armlinux/tools/binBinutils# ls $PREFIX/binarm-linux-addr2line arm-linux-ld arm-linux-ranlib arm-linux-striparm-linux-ar arm-linux-nm arm-linux-readelfarm-linux-as arm-linux-objcopy arm-linux-sizearm-linux-c++filt arm-linux-objdump arm-linux-strings

5Linuxarm-linux1kernellinux-2.6.10.tar.gz# cd $PRJROOT/kernel# tar xvzf linux-2.6.10.tar.gz2# cd linux-2.6.10# make ARCH=arm CROSS_COMPILE=arm-linux- menuconfigARCH=arm armCROSS_COMPILE=arm-linux-arm-linux-config xconfigmenuconfigmake menuconfigS3C2410System Type->ARM System Type->/Samsung S3C2410include/linux/version.h include/linux/autoconf.hglibcversion.h autoconf.h

/home/mike/armlinux/tools/arm-linuxinlcude# mkdir p $TARGET_PREFIX/include# cp r $PRJROOT/kernel/linux-2.6.10/include/linux $TARGET_PREFIX/include# cp r $PRJROOT/kernel/linux-2.6.10/include/asm-arm $TARGET_PREFIX/include/asm

arm- linux-gccgccglibcBootLoaderCCCBootLoader# cd $PRJROOT/build-tools# tar xvzf gcc-3.3.6.tar.gz# mkdir build-gcc# cd gcc-3.3.6# vi gcc/config/arm/t-linuxARMlibcgcc/config/arm/t- linuxTARGET_LIBGCC2_CFLAGS-Dinhibit_libc -D__gthr_ posix_h/usr/inlcude6gcc

TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer fPICTARGET_LIBGCC2- CFLAGS=-fomit-frame-pointerfPIC -Dinhibit_libc -D__gthr_posix_ht-linux# cd build-gcc# ../ build-gcc /configure --target=$TARGET --prefix=$PREFIX --enable-languages=c--disable-threads --disable-shared--enable-languages=cC--disable-threadsthreadglibc--disable-shared# make# make install/home/mike/armlinux/tools/binarm-linux-gccgcc

glibc-2.2.3.tar.gzglibc-linuxthreads-2.2.3.tar.gz# cd $PRJROOT/build-tools# tar -xvzf glibc-2.2.3.tar.gz# tar -xzvf glibc-linuxthreads-2.2.3.tar.gz --directory=glibc-2.2.3glibc-2.2.3glibc-2.2.3$PRJROOT/build-toolsbuild-glibc # cd $PRJROOT/build-tools# mkdir build-glibc# cd build-glibc# CC=arm-linux-gcc ../glibc-2.2.3 /configure --host=$TARGET --prefix="/usr"--enable-add-ons --with-headers=$TARGET_PREFIX/includeCC=arm-linux- gccCCCross Compilergccglibc--prefix="/usr"/usr/local--enable-add-onsglibclinuxthreads glibc-enable-add-ons=linuxthreads--with-headersglibc linux glibc# make# make install7glibc

gccglibcglibcglibcgccCCC++# cd $PRJROOT/build-tools/gcc-2.3.6# ./configure --target=arm-linux --enable-languages=c,c++ --prefix=$PREFIX# make# make install$PREFIX/binarm-linux-g++ arm-linux-c++8gcc

# ls $PREFIX/binarm-linux-addr2line arm-linux-g77 arm-linux-gnatbind arm-linux-ranlibarm-linux-ar arm-linux-gcc arm-linux-jcf-dump arm-linux-readelfarm-linux-as arm-linux-gcc-3.3.6 arm-linux-jv-scan arm-linux-sizearm-linux-c++ arm-linux-gccbug arm-linux-ld arm-linux-stringsarm-linux-c++filt arm-linux-gcj arm-linux-nm arm-linux-striparm-linux-cpp arm-linux-gcjh arm-linux-objcopy grepjararm-linux-g++ arm-linux-gcov arm-linux-objdump jar

Crosstool() Crosstoolgccglibcglibchttp: //kegel.com/crosstoolCrosstool

Crosstool()Crosstoolgccglibcglibchttp: //kegel.com/crosstoolCrosstoolCrosstool

Crosstool()which makeinfotexinfo-4.11.tar.bz2texinfo-4.11./configure&&make&&make installmakeinfo

Crosstool()1 linux-2.4.20.tar.gzbinutils-2.19.tar.bz2gcc-3.3.6.tar.gzglibc- 2.3.2.tar.gzglibc-linuxthreads-2.3.2.tar.gzgdb-6.5.tar.bz2 $HOME/downloads$HOME/crosstool-0.43.tar.gz# cd $HOME/# tar xvzf crosstool-0.43.tar.gz

Crosstool()2arm.sharm.shdemo-arm.sharm.sharm.sh# cd crosstool-0.43# cp demo-arm.sh arm.sh# vi arm.sharm.sh

Crosstool()#!/bin/shset -exTARBALLS_DIR=$HOME/downloads # RESULT_TOP=$HOME/arm-bin # export TARBALLS_DIR RESULT_TOPGCC_LANGUAGES="c,c++" # C, C++export GCC_LANGUAGES# /opt/crosstoolmkdir -p $RESULT_TOP# eval 'cat arm.dat gcc-3.3.6-glibc-2.3.2.dat' sh all.sh --notestecho Done.

Crosstool()3arm.sharm-xscale.datgcc-3.3.6-glibc-2.3.2.datCrosstool arm.datKERNELCONFIG='pwd'/arm.config # TARGET=arm-linux # TARGET_CFLAGS="-O" #

Crosstool()gcc-3.3.6-glibc-2.3.2.datCrosstoolBINUTILS_DIR=binutils-2.19GCC_DIR=gcc-3.3.6GLIBC_DIR=glibc-2.3.2LINUX_DIR=linux-2.6.10-8()GDB_DIR=gdb-6.5

Crosstool()4Crosstoolarm.sh# cd crosstool-0.43# ./arm.sh/opt/crosstoolarm-linux-addr2line arm-linux-g++ arm-linux-ld arm-linux-sizearm-linux-ar arm-linux-gcc arm-linux-nm arm-linux-stringsarm-linux-as arm-linux-gcc-3.3.6 arm-linux-objcopy arm-linux-striparm-linux-c++ arm-linux-gccbug arm-linux-objdump fix-embedded-pathsarm-linux-c++filt arm-linux-gcov arm-linux-ranlibarm-linux-cpp arm-linux-gprof arm-linux-readelf

Crosstool()5PATH/etc/ bashrcbashrcexport PATH=/home/jiabing/gcc-3.3.6-glibc-2.3.2/arm-linux-bin/bin:$PATH

Crosstool()arm-linuxarm-linux-gcc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值