⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc篇

📁 一些linux和uboot的学习笔记
💻
字号:
############################################################################################################################################################################chapter 1  gcc的下载和安装######################################################################################要学习GCC,首先当然是要学习安装GCC了。。参考资料我选择的是 :GCC The Complete  Reference.其中的第二章有详细的介绍。这里我还是要按照自己的理解将自己的操作写下来,为以后的朋友跟进做备份。第一部分:失败的开始(原因现在还没找到,希望我成为老鸟的时候可以把问题解决,而不是绕过!)#############################################################################1-1..首先到 gcc.gnu.org网站上去下载一份GCC的源代码,版本自己可以选择,主要看你的考量了。我自己选择的是4.1.0。嘿嘿。。因为太新了怕有BUG,太老了又觉得有些落后 。不过听老大说,我们还在用2版和3版,不知道我用4版是不是算前卫了,哈哈。。。我把我的下载代码放在了/home/reasil/里,其中realsil 是我安装的LINUX的用户号。你可以下载到你的LINUX下的任何一个地方了,不过要记住这个地址,这是下一步解压时的源文件目录。1-2.接着就要进入到我想要解压的目标文件夹中进行解压。我安装参考书第二章的说明,进入到了/usr/local/src目录下。这个目录是我想要将GCC源文件解压到的目的地址。所用的命令为:首先进入终端命令方式,然后敲入命令1:1:cd /usr/local/src        这样进入我要解压的目的文件的目录中了接着我要把源文件解压到/usr/local/src下。敲入命令2如下:2:sudo tar -xvzf /home/realsil/gcc-4.1.0.tar.gz命令端一阵刷屏。解压的文件就到了目的地址/usr/local/src中了。不信自己ls 看下哦。NOTE:如果你下载的源代码的地址不是/home/realsil的话,那上边命令2的源地址你要相应改下了呢。另外sudo这个命令是因为我用的操作系统是Linux下的 ubuntu7.10版本,这个版本没有root用户,所以要操作系统部分的地址和目录,需要加上sudo来申请root权限!1-3.接下来,要把解压文件中的config文件提取,并配置。这里要自己建立一个存放config文件提取配置得到的文件的存放目录。我建立了提取config文件的目录在/opt/build.这里敲入命令三:3:mkdir /opt/build接着就进入该目录,并输入配置config的命令,其中configure中的options ( --perfix)是指定的安装的GCC的执行文件群的地址目录,我选在了/opt/usr/local处。敲入命令4,5:4:cd /opt/build5:sudo /usr/local/src/gcc-4.1.0/configure   --prefix=/opt/usr/local配置动作完成后,配置文件群都在我发出指令操作的地方:/opt/build处。1-4然后我就在/opt/build目录下发出编译命令了,嘿嘿。敲入命令6:6.sudo make不幸的是。。。编译没有通过,在中间就退出了。。我看不出退出的原因。。。555~~可怜的小菜鸟 。。。不过没关系。JUST DO IT。我换个GCC版本试下呢!下了4.2.4版本,也是完全版的,就是源代码包含了C,C++,JAVA,ADA(一个超级清纯的英国女子),FORTRAN多种语言编译器的。。。步骤跟上边一样,只是把源文件换了下。结果。。又挂了。。。这时开始呼吸缺氧,关键问题是编译中间突然退出的原因我看不懂阿。。也就是说我现在是一棒子买卖,一口气编不过,我就没招了!###################################################################第二部分 迂回成功!冷静分析,决定放弃完全版的源码包。从大一老师就说认识一个事物要从已知到未知,我记这句话7年了!所以,拆掉它!、2-1下载了4.24版本下,只有CORE的源码包。然后重复上边步骤:首先把/opt/build和/usr/local/src中的文件全部删掉,从头开始!sudo rm -rf /opt/buildsudo rm -rf /usr/local/src把源码包gcc-core-4.2.4.tar.gz下到/home/realsil中。然后进入/usr/local/src文件目录下发出命令1:1:sudo tar -xvzf /home/realsil/gcc-core-4.2.4.tar.gz2-2接着我再次进入/opt/build文件夹中,配置新的configure文件,发出命令2:2: sudo /usr/local/src/gcc-core-4.2.4/configure --prefix=/opt/usr/local2-3接着我就发出编译GCC命令3:3:sudo make世界突然清静了,我心跳的很厉害。。去打水 。。然后回来还在编译。。。大概半个小时后,编译结束。正常退出了!说明编译通过,接着当然就是继续追击!2-4我发出最后的命令4:4:sudo make install然后进入到指定的编译后的GCC的执行文件夹中/opt/usr/local中ls一下,ok!我看到了GCC执行文件了!2-5使用指令5:5:which gcc可以看到系统自带的GCC4.1.3版本是在/usr/bin文件夹中,于是发出指令6:6: sudo ln -s /opt/usr/local/bin/gcc gcc424把编译出来的GCC4.2.4的执行文件gcc定位到/usr/bin/gcc424其实还有lib文件也要重定位似乎,不过我今天暂时不做这个了。下边就是继续扩充!C++的编译器我也想加进去。可能是第一步成功的小兴奋,灵感来了。我居然花了一会功夫就猜出了步骤,试验有波折,不过还是成功了!步骤如下:2-6首先把/opt/build和/usr/local/src中的文件全部删掉,从头开始!一开始没有删,直接解压CORE和G++源码包。结果就失败了。。。但是也可能是我解压是先解的下载的G++软件包,后解压的GCC-CORE。顺序不对,不过前者的可能性最大!2-7删除结束后。把 c++编译器的源码包gcc-g++-4.2.4.tar.gz下载到/home/realsil中然后进入/usr/local/src文件目录下发出命令1,2:1:sudo tar -xvzf /home/realsil/gcc-core-4.2.4.tar.gz2:sudo tar -xvzf /home/realsil/gcc-g++-4.2.4.tar.gz这样两个源码包中的代码解压到了/usr/local/src文件目录下的gcc-4.2.4文件夹中。跟解压单个的gcc源码包是一样的,解压时已经自动把两个包中的代码合成为一个整体了,神奇阿!解下来的步骤跟编译单独的GCC源码包差不多了。2-8接着我再次进入/opt/build文件夹中,配置新的configure文件,发出命令3:3:  sudo /usr/local/src/gcc-4.2.4/configure --prefix=/opt/usr/  --enable-languages=c,c++这里的option ( --enable-languages=c,c++)是选择编译的语言为c和 c++两种,这在configure时就要配置好!因为我舍不得删掉刚才编译的可执行文件夹/opt/usr/local中的文件,我这次让编译的可执行文件放在了/opt/usr文件夹下2-9 接下来就是编译了,发出命令4:4:sudo make2-10经过半个多小时的编译,成功完成退出,然后就发出命令5:5:sudo make instal然后等安装好后,到/opt/usr文件夹下就可以看到编译出的文件了,嘿嘿,和用core源码包编译出的文件相比多了g++和c++,下边是这次编译产生的可执行文件:  g++  gccbug  i686-pc-linux-gnu-c++  i686-pc-linux-gnu-gcccpp  gcc  gcov    i686-pc-linux-gnu-g++  i686-pc-linux-gnu-gcc-4.2.4这次GCC编译就这样告一段落了,也许最近有兴致再试下整体编译,就是支持多语言的源码包的编译。不过整个GCC的编译步骤已经掌握了。下边的精力应该会放在GCC的使用,学习了GCC,接下来还有MAKE和GDB两个大东西!我的天阿!!################################################################################################################################################################################chapter 2 GCC的学习以 GCC the complete reference 为主要参考资料#######################################################################################1 -1 在完成了GCC的下载和安装后,可以开始GCC的应用学习了。要用好GCC,其实涉及的知识非常宽广。包括了编译(complier)和链接(linker)。makefile和autoconfig的使用,我的理解也就是软件工程的结构组织工具。还有GDB进行调试。在我们的嵌入式平台上,还要涉及交叉编译(cross-compile)感觉这一层已经涉及到汇编器以及硬件平台了。有了开发平台,往下才是嵌入式平台的BOOTLOADER,板极支持包(BSP)以及操作系统(OS)以及上边的API和AP。每个部分里边都有很多的门道。这在读书的时候就有感触!曾经是打算要把这些部分逐一解决掉,但是阴差阳错吧,最后直到来公司,我还是没有做。这次下定决心要把这块整个有个解决,不论花多少年。这都是命!繁华世界转了一圈,还是回到了起点。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -