1.GNU软件çç®ä»
2.Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器
3.å¦ä½å®è£
gcc-linaro-arm-linux-gnueabihf-4.8-2014.03
GNU软件çç®ä»
GNU软件æ¯GNU计åå¼åç软件ï¼è¯¥è½¯ä»¶å¯ä»¥å åå©ç¨è®¡ç®æºç硬件è½åï¼æ¯Unixä¸çåæ ·ç软件åè½æ´å¼ºï¼å æ¤é常æµè¡ï¼è¿äºè½¯ä»¶å¨GNUéç¨å ¬å ±è®¸å¯çä¿æ¤ä¸å 许任ä½äººå 费使ç¨åä¼ æï¼ä½å¿ é¡»åæ¶æä¾æºç¨åºï¼ï¼å æ¤è¢«å¤§éçç¨å¨å ¶ä»çUnixä¸ï¼FreeBSDä¸ä¹æä¾äºå¾å¤GNU软件ãæä¸äºGNU软件æ¯ç±èªç±è½¯ä»¶åºéï¼Free Software Foundationï¼æåç¼åçï¼ä½å¤§å¤æ°GNU软件æ¯å¿æ¿è æç®çãæäºæç®è½¯ä»¶æ¯ç±èªç±è½¯ä»¶åºéå è´¹ååï¼ä½æä¸äºè½¯ä»¶ç±ä½è 享æçæã
GNU软件使ç¨copyleftä¿æ¤ï¼éå¶å°GNU软 件æ¬èº«ç¨äºçå©ç®çï¼èå ¶ä»è½¯ä»¶ä»ç¶å¯ä»¥ä½¿ç¨copyrightä¿æ¤çæä¸è¢«ä¾µç¯ãStallmanè¿ä¸æ¥ä½¿ç¨GNU éç¨å ¬å ±è®¸å¯æ¥è¯¦ç»éè¿°copyleftçè§å¿µï¼è¦æ±ä¼ æGNUè½¯ä»¶å¿ é¡»åæ¶ä¼ æå ¶æºä»£ç ãç±äºGNUéç¨å ¬å ±è®¸å¯å åæµè¡ï¼å æ¤å¾å¤éèªç±è½¯ä»¶åºéä¼çèªç±è½¯ä»¶ä¹ä½¿ç¨GNUéç¨å ¬å ±è®¸å¯æ¥ä¿æ¤èªå·±è½¯ä»¶ï¼ä¸è¢«åä¸å ¬å¸ç¨äºè·å©ã
GNU软件许å¯ç¸å½å®½æ¾ï¼æå¾å¤å ¬å¸å©ç¨GNU软件è¿è¡åä¸æ´»å¨ï¼ä½åªè¦åæ¶æä¾äºGNU软件çæºä»£ç ï¼å°±æ²¡ æè¿åGNU软件许å¯ã
Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器
在编译Ubuntu驱动时,码下由于使用的码下gcc版本为7.3.0,通过apt管理和下载都无法直接安装,码下因此需要从源码编译安装gcc7.3.0编译器。码下
GCC,码下作为GNU项目的码下模拟虚拟按键+源码重要组成部分,是码下一款遵循GPL许可证的自由软件。起初,码下它为GNU操作系统设计,码下如今已广泛应用于Linux、码下BSD、码下MacOS X等系统,码下甚至在Windows上也有应用。码下dde指标源码公式GCC支持多种处理器架构,码下如x、码下ARM和MIPS,并且支持多种编程语言,如C、C++、dll执行exe源码Fortran、Pascal等。
要从源码安装gcc7.3.0,首先需要下载源码包。下载地址为:mirrors.tuna.tsinghua.edu.cn...
安装过程分为几个步骤。首先,自己搭建iis源码确保网络连接,因为需要依赖库,如libgmp-dev、libmpfr-dev和libmpc-dev。安装完这些后,不要卸载已有的java 深入源码分析gcc,因为可能会遇到问题。
下载并解压gcc-7.3.0.tar.gz,然后执行./configure。注意增加c和c++的配置,避免编译结果只有g++。配置完成后,进行make -j4编译,可能会遇到错误,如"fatal error: asm/errno.h: No such file or directory",这时需要修改头文件路径。
继续编译,可能会遇到"sanitizer_syscall_generic.inc::: error: '__NR_open' was not declared in this scope",解决方法是修正头文件链接。最后,编译成功后执行sudo make install,并确认安装版本。
在安装过程中,有两点需要注意:一是本地需要g++,否则编译时会出错,解决方法是安装gcc;二是安装后可能只有g++,没有gcc,此时需在./configure阶段添加c和c++的配置。
å¦ä½å®è£ gcc-linaro-arm-linux-gnueabihf-4.8-.
1ã å¦æè¦èªå·±ç¼è¯å·¥å ·é¾ï¼ä»ä»¥ä¸é¾æ¥ä¸è½½æºç
crosstools-ngä¸è½½å°å
http://ymorin.is-a-geek.org/download/crosstool-ng/
åæ¶å¯¹æ¯ä¸ä¸ªçæ¬é½æç¸åºçè¡¥ä¸æ们尽éæè¿äºè¡¥ä¸æä¸ï¼è¿äºè¡¥ä¸çä¸è½½å°åæ¯
http://ymorin.is-a-geek.org/download/crosstool-ng/-fixes/
2ã 解åå·¥å ·é¾å缩å
$ cd ~
$ mkdir toolchain
$ cd toolchain
å°ä¸å¥½çgcc-linaro-arm-linux-gnueabihf-4.8-.æ·è´å°toolchainç®å½ä¸å¹¶è§£å
$ tar -xvf gcc-linaro-arm-linux-gnueabihf-4.8-. gcc-4.8
3ã ç¯å¢åéçæ·»å
ä¿®æ¹æ件/etc/bash.bashrcæ·»å å¦ä¸å 容
export PATH=$PATH:/home/linux/toolchain/gcc-4.8/bin
éå¯é ç½®æ件
$ source /etc/bash.bashrc
4ã å·¥å ·é¾çæµè¯
$ arm-none-linux-gnueabi-gcc âv
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/david/Exynos/toolchain/gcc-4.6.4/bin/../libexec/gcc/arm-armjzfssf-linux-gnueabi/4.6.4/lto-wrapper
Target: arm-armjzfssf-linux-gnueabi
Configured with: /work/builddir/src/gcc-4.6.4/configure--build=i-build_pc-linux-gnu --host=i-build_pc-linux-gnu--target=arm-armjzfssf-linux-gnueabi--prefix=/opt/TuxamitoSoftToolchains/arm-armjzfssf-linux-gnueabi/gcc-4.6.4--with-sysroot=/opt/TuxamitoSoftToolchains/arm-armjzfssf-linux-gnueabi/gcc-4.6.4/arm-armjzfssf-linux-gnueabi/sysroot--enable-languages=c,c++ --with-arch=armv6zk --with-cpu=armjzf-s--with-tune=armjzf-s --with-fpu=vfp --with-float=softfp--with-pkgversion='crosstool-NG hg+default-dfa9de - tc'--disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap--disable-libgomp --disable-libssp --disable-libquadmath--disable-libquadmath-support--with-gmp=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-mpfr=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-mpc=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-ppl=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-cloog=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-libelf=/work/builddir/arm-armjzfssf-linux-gnueabi/buildtools--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'--enable-threads=posix --enable-target-optspace --without-long-double---disable-nls --disable-multilib --with-local-prefix=/opt/TuxamitoSoftToolchains/arm-armjzfssf-linux-gnueabi/gcc-4.6.4/arm-armjzfssf-linux-gnueabi/sysroot--enable-c --enable-long-long
Thread model: posix
gcc version 4.6.4 (crosstool-NG hg+default-dfa9de -tc)
è¿æ ·æ们ç交åå·¥å ·é¾å°±å®è£ 好äº