交叉编译环境搭建.docx
- 文档编号:11215948
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:16
- 大小:1MB
交叉编译环境搭建.docx
《交叉编译环境搭建.docx》由会员分享,可在线阅读,更多相关《交叉编译环境搭建.docx(16页珍藏版)》请在冰点文库上搜索。
交叉编译环境搭建
交叉编译环境搭建
一、Emdebian介绍
Emdebianvision
IntheEmdebianvisionsomeonewishingtobuildaGNU/Linuxbaseddevicewould:
1.Portthelinuxkerneltotheirhardware(includingwritinganyspecificdevicedrivers).
2.Selecttheprebuiltemdebianpackagesneededtosupporttheirapplication.
3.PackagetheirapplicationasDebianpackage(s)usingDebianandEmdebiantools.
4.BuildarootfilesystemusingEmdebiantoolsfromthestepsabove.
Emdebianisinvolvedinsteps2,3,4above(therearefartoomanyembeddeddevicehardwarevariationstomakeprebuiltkernelspractical).
ThusEmDebianisabinarydistributionforembeddeddevices(whereasmostoftheothercontendersinthisspacearesourcedistributions[ofcoursebeingDebianandopensourcethesourcecodeisstillavailableifrequired].
Whatemdebiandoes
Inshort,whatEmDebiandoesiswraparoundtheregulardebianpackagebuildingtoolstoprovideamorefinegrainedcontroloverpackageselection,size,dependenciesandcontenttoenablecreationofverysmallandefficientdebianpackagesforuseonnaturallyresourcelimitedembeddedtargets.
二、搭建GCC编译开发环境
安装G++/GCC编译环境
sudoapt-getinstallgccg++makegdb
可以使用man命令查看GCC和G++的帮助信息。
还可以通过gcc–v/–version命令查看其版本信息,通过这些信息我们能够了解到编译器的一些情况。
安装相应的开发帮助文件
使用以下命令安装开发所需的帮助文档,这些文档包括了linuxAPI函数的说明和例子等等。
sudoapt-getinstallmanpages-devmanpages-posix-devlibstdc++6-4.4-doc
安装时,系统会将关联的软件包一并安装。
安装结束后,即可测试一下相关的帮助文档。
三、搭建GCC交叉编译开发环境
我们采用emdebian提供的已配置好的交叉编译器,这样做可降低初学者的入门难度。
当然,传统的嵌入式开发还是建议自己编译配置交叉编译器,以此得到一个更适合自己项目的开发环境。
比如:
得到一个支持uclibc库的编译器;得到一个支持定点运算的编译器等等。
关于如何定制一套属于自己的交叉编译器,这个问题我们将留到以后的课程中详细讲解。
在此,我们可以先认为emdebian提供的交叉编译器就是我们需要的。
添加emdebian网站提供的软件包源
使用nano命令编辑系统的/etc/apt/sources.list软件源列表文件,在其中添加emdebian网站提供的软件包源地址。
sudonano/etc/apt/sources.list
除了testing版本的软件包源外,我们还可使用stable版本的。
debhttp:
//www.emdebian.org/debian/stablemain
deb-srchttp:
//www.emdebian.org/debian/stablemain
debian的程序版本管理机制将软件分为了unstable,testing,stable三个版本,其中stable为稳定的版本,但版本也较unstable和testing低一些。
更新软件源信息安装源的数字证书
使用apt-getupdate命令更新软件源的包描述信息,通过这些信息,我们可以知道一个软件源提供哪些版本的安装软件及源代码包。
sudoapt-getupdate
通过安装emdebian-archive-keyring就可以安装emdebian网站提供的软件源的数字证书,数字证书是一种安全认证机制,有了数字证书就可以避免安装到非法网站提供的软件源。
sudoapt-getinstallemdebian-archive-keyring
安装G++/GCC交叉编译开发环境
在emdebian软件源中,将一个类型的交叉编译开发环境分为了13个软件包。
这些软件包括了:
binutils,cpp,g++,gcc,gdb,libc库,libstdc++库,linux头文件等等。
可以通过apt-getinstall命令进行安装,以下我们已arm-linux-gnu为例,安装这一套交叉编译器的软件包:
支持OABI接口的编译器安装包:
binutils-arm-linux-gnu(版本2.18.1~cvs20080103-7)
cpp-4.3-arm-linux-gnu(版本4.3.2-1.1)
g++-4.3-arm-linux-gnu(版本4.3.2-1.1)
gcc-4.3-arm-linux-gnu(版本4.3.2-1.1)
gcc-4.3-arm-linux-gnu-base(版本4.3.2-1.1)
libc6-arm-cross(版本2.7-18)
libc6-dev-arm-cross(版本2.7-18)
libgcc1-arm-cross(版本1:
4.3.2-1.1)
libstdc++6-4.3-dev-arm-cross(版本4.3.2-1.1)
libstdc++6-4.3-pic-arm-cross(版本4.3.2-1.1)
libstdc++6-arm-cross(版本4.3.2-1.1)
linux-kernel-headers-arm-cross(版本2.6.18-6)
gdb-arm-linux-gnu(版本6.8-3)
支持EABI接口的编译器安装包:
binutils-arm-linux-gnueabi(2.18.1~cvs20080103-7)
cpp-4.3-arm-linux-gnueabi(4.3.2-1.1)
g++-4.3-arm-linux-gnueabi(4.3.2-1.1)
gcc-4.3-arm-linux-gnueabi(4.3.2-1.1)
gcc-4.3-arm-linux-gnueabi-base(4.3.2-1.1)
gdb-arm-linux-gnueabi(6.8-3)
libc6-armel-cross(2.7-18)
libc6-dev-armel-cross(2.7-18)
libgcc1-armel-cross(1:
4.3.2-1.1)
libstdc++6-4.3-dev-armel-cross(4.3.2-1.1)
libstdc++6-armel-cross(4.3.2-1.1)
gcc-4.3-base-armel-cross(4.3.2-1.1)
linux-libc-dev-armel-cross(2.6.26-17)
在安装过程中,一定要注意各软件包之间的版本依赖,这些依赖实际上是编译器配置的一部分,在此emdebian已为用户搭配好的了。
其中gdb-arm-linux-gnu包会与之前的gdb包有冲突。
解决方法如下:
找到从emdebian下载的软件包gdb-arm-linux-gnu,并将其拷贝到一个工作目录下。
cp/var/cache/apt/archives/gdb-arm-linux-gnu_6.8-3_i386.deb.
使用dpkg-x命令解压出其中的数据内容。
dpkg-xgdb-arm-linux-gnu_6.8-3_i386.debgdb-arm-linux-gnu_6.8-3_i386
使用dpkg-e命令解压出其中的控制信息,并保存在XXX/DEBIAN目录下。
dpkg-egdb-arm-linux-gnu_6.8-3_i386.debgdb-arm-linux-gnu_6.8-3_i386/DEBIAN
删除文件XXX/usr/share/man/man1/gdb.1.gz,正是这个文件与gdb软件包冲突。
rm-fgdb-arm-linux-gnu_6.8-3_i386/usr/share/man/man1/gdb.1.gz
使用dpkg-deb-b命令重新打包gdb-arm-linux-gnu,生成新的软件包。
dpkg-deb-bgdb-arm-linux-gnu_6.8-3_i386
使用dpkg-i命令手动安装gdb-arm-linux-gnu软件包。
sudodpkg-igdb-arm-linux-gnu_6.8-3_i386.deb
到此,交叉编译开发环境安装完毕。
四、搭建集成交叉编译开发环境
CodeBlocks集成开发环境介绍
安装提供CodeBlocks软件包的软件源
添加CodeBlocks的软件源到/etc/apt/sources.list,此软件由网站apt.jenslody.de提供。
debhttp:
//apt.jenslody.de/anymain
deb-srchttp:
//apt.jenslody.de/anymain
添加CodeBlocks依赖的库wxwidgets的软件源到/etc/apt/sources.list,此库有网站apt.wxwidgets.org提供。
debhttp:
//apt.wxwidgets.org/lenny-wxmain
deb-srchttp:
//apt.wxwidgets.org/lenny-wxmain
更新软件源信息安装源的数字证书
使用apt-getupdate命令再次更新软件源的包描述信息,使用apt-key添加wxwidgets网站的数字证书,使用apt-getinstall安装jenslody网站的数字证书。
sudoapt-getupdate
wget-qhttp:
//apt.wxwidgets.org/key.asc-O-|sudoapt-keyadd-
sudoapt-getinstalljens-lody-debian-keyring
安装CodeBlocks集成开发环境
使用以下命令安装CodeBlocks软件包,此时系统会将其依赖的其他软件包也一并完成安装。
sudoapt-getinstallcodeblocks
安装的过程分为下载软件包->安装软件包->配置软件包三步完成。
配置CodeBlocks集成开发环境
CodeBlocks安装完成后默认只与后台的x86编译器gcc/g++连接了,需要配置一些参数才会调用后台的交叉编译器arm-linux-gnu。
单击系统菜单“应用程序”->“编程”->“Code:
:
BlocksIDE”启动CodeBlocks
单击程序菜单“Settings”->“Compileranddebugger…”打开编译设置窗口
在“Selectedcompiler”中选择“GNUARMGCCCompiler”,并在下面的标签页选中“Toolchainexecutables”。
设置“Toolchainexecutables”下的“ProgramFiles”标签为arm-linux-gnu命令集,内容如下:
单击“确定”保存设置。
到此集成交叉编译环境就搭建好了。
五、编写第一个跨平台的程序
CodeBlocks是一个跨平台的集成交叉开发环境,利用这个集成开发环境,我们不仅可以开发跨操作系统平台的软件,还能开发跨硬件平台的软件。
当然这一功能还需要来自跨平台的库和交叉编译器的支持。
单击程序菜单“File”->“New”->“Project…”打开项目创建窗口。
选择“Consoleapplication”,点击“Go”到下一步,再点击“Next”。
在“Pleasemakeaselection”选择“C”或“C++”,再点击“Next”。
在“Projecttitle:
”填写一个项目名(test02),在“Foldertocreateprojectin:
”填写创建项目的所在路径,之后的内容程序一般会自动填写。
单击“Finish”完成项目创建,此时在“Management/Projects”的“Workspace”中,会多出一个“test02”的项目。
单击快捷键Ctrl+F11就可以编译出Buildtarget为“Debug”版本的程序。
单击“Project”->“Buildoptions…”打开项目编译选项。
选择“Release”标签,同时修改“Selectedcompiler”为“GNUARMGCCCompiler”保存退出。
修改Buildtarget为“Release”,再单击快捷键Ctrl+F11就可以编译出在ARM中运行的程序了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交叉 编译 环境 搭建