返回列表 发帖

[站长原创] 跟我学嵌入式基础知识篇 - 安装交叉编译器等开发环境

[站长原创] 跟我学嵌入式基础知识篇 - 安装交叉编译器等开发环境

跟我学嵌入式基础知识篇 - 安装编译器和交叉编译器工具链

嵌入式开发联盟www.mcuos.com

Osboy站长原创

QQ:82475491

Mcuos.com@gmail.com

(一)安装samba服务器

进到ubuntu,系统-->系统管理-->新立锝软件包,查找samba,然后选择安装system-config-samba安装。

安装完毕后进入:系统-->系统管理-->samba,配置你的samba账户。

ifconfig查看你当前的ubuntuip地址,然后从windows上打开一个文件夹,选择tools-map network drive,输入你的ubuntu机器的ip和你samba的账户,然后输入用户名密码,这样就可以把虚拟机上的某个文件夹mapwindow上的一个盘符上来。

本来我是不打算写这个samba设置的详细帖子的,但是发现兄弟们在这上面花的时间太多了,所以还是提供给大家吧。节省大家的时间去做更有意义的学习。

我写的具体详细的设置帖子如下:

http://mcuos.com/thread-8361-1-1.html


(二)安装gedit,sourceinsight编辑器工具

sudo apt-get install gedit

这个是个类似于ultraedit32windows编辑器工具。还有个在windows上查看代码的利器就是sourceinsight,

具体使用方法,请参考下面的帖子:

http://mcuos.com/redirect.php?tid=8370&goto=lastpost#lastpost


(三)安装gcc for x86机器

sudo apt-get install build-essential

(四)安装gcc交叉编译器 for arm

安装交叉编译器:

找到飞凌的光盘中的“实用工具”目录,你能看到:


找到交叉编译器工具链arm-linux-gcc-4.3.2.tgz,解压缩到ubuntu/usr/local/arm下面,

步骤如下:


mkdir ok6410

sudo mkdir /usr/local/arm

cd ok6410

拷贝arm-linux-gcc-4.3.2.tgz 到ok6410目录下

解压缩:

sudo tar zxvf arm-linux-gcc-4.3.2.tgz  -C /


然后可以进入到/usr/local/arm查看。


然后export PATH=/usr/local/arm/4.3.2/bin: $PATH

打开一个命令行终端输入 arm-linux-gcc -v,查看效果如下:


zswan@zswan-laptop-ubuntu:~/Myproject/ok6410/linux-3.0.1$ arm-linux-gcc -vUsing built-in specs.Target: arm-none-linux-gnueabiConfigured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/binThread model: posixgcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)


(五)下面引用一下别人gcc的使用,简明易懂:

一. 常用编译命令选项

假设源程序文件名为test.c。

1. 无选项编译链接

用法:#gcc test.c

作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

2. 选项 -o

用法:#gcc test.c -o test

作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。

3. 选项 -E

用法:#gcc -E test.c -o test.i

作用:将test.c预处理输出test.i文件。

4. 选项 -S

用法:#gcc -S test.i

作用:将预处理输出文件test.i汇编成test.s文件。

5. 选项 -c

用法:#gcc -c test.s

作用:将汇编输出文件test.s编译输出test.o文件。

6. 无选项链接

用法:#gcc test.o -o test

作用:将编译输出文件test.o链接成最终可执行文件test。

7. 选项-O

用法:#gcc -O1 test.c -o test

作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。

二. 多源文件的编译方法

如果有多个源文件,基本上有两种编译方法:

[假设有两个源文件为test.c和testfun.c]

1. 多个文件一起编译

用法:#gcc testfun.c test.c -o test

作用:将testfun.c和test.c分别编译后链接成test可执行文件。

2. 分别编译各个源文件,之后对编译后输出的目标文件链接。

用法:

#gcc -c testfun.c //将testfun.c编译成testfun.o

#gcc -c test.c //将test.c编译成test.o

#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test

附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

为什么我每次重新打开命令行的时候都要修改PATH的值呢?大家的也都是这样的吗?

TOP

回复 2# luomuxiaoxiao98


   把 export PATH=/usr/local/arm/4.3.2/bin: $PATH 这一句加到你的 ~/.bash_profile文件中就行了。

TOP

回复 3# dglwx

谢谢,我的文件里好像没有.bash_profile,从网上看.bashrc和.bash_profile 的作用差不多,所以我写到.bashrc中,效果达到了!

TOP

本人新手  照着站长的教程一步步走。 遇到个问题了 有人遇到过这个问题吗?sudo apt-get install build-essential  安装gcc  或者其他的软件包都会出现这样的错误[img][/img]

TOP

E:无法找到软件包 build-essential

TOP

E:无法找到软件包 build-essential
LDN 发表于 2012-12-5 20:34



   你用的是ubuntu?哪个版本的?我们这边培训专用的是10.10的。不过按理说你这个包哪个版本都可以的啊。

TOP

9.10的。  一定要安装GCC for x86的。。。这个包是叫编译器吧

TOP

9.10的。  一定要安装GCC for x86的。。。这个包是叫编译器吧
LDN 发表于 2012-12-6 10:54



   Make,gcc,glibc之类的交叉编译需要用到的软件都在这里面。

TOP

执行apt-get install libncurses,出现上述错误
正在读取软件包列表...完成
正在分析软件包的依赖关系树
正在读取状态信息...完成
E:无法找到软件包 libncurses

还是这个错误没解决  弄了好久了

TOP

make: arm-linux-gcc: Command not found
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
/bin/sh: arm-linux-gcc: not found
make[1]: *** [kernel/bounds.s] Error 127
make: *** [prepare0] Error 2

TOP

问题时不时就出现  解决了一个问题又来了一个问题。初学者啊 步步艰难

TOP

问题时不时就出现  解决了一个问题又来了一个问题。初学者啊 步步艰难
LDN 发表于 2012-12-6 14:04



  这个时候就需要你参加osboy老大的网络培训班了啊,呵呵。就可以要老大QQ在线答疑了。

TOP

make: arm-linux-gcc: Command not found
  CHK     include/linux/version.h
  CHK     include/generated ...
LDN 发表于 2012-12-6 14:02



   你没有安装arm-linux-gcc交叉编译器,或者编译器的路径没有指对。需要export的命令的确认下。

TOP

回复 10# LDN


   楼主错误应该解决了,不过如果后来人的话,可以试试:sudo apt-get update
找下软件列表的问题,应该是软件列表没更新~

TOP

回复  LDN


   楼主错误应该解决了,不过如果后来人的话,可以试试:sudo apt-get update
找下软件列表的 ...
zzz.Mraz 发表于 2013-9-22 17:15



   经常的 sudo apt-get update一下是个好习惯,有些时候我再安装软件包的时候会碰到错误,update一下在重新安装就能解决了。

TOP

@万哥 用的32位ubuntu?

TOP

@万哥 用的32位ubuntu?
kennedy 发表于 2014-12-9 14:58



    我用的是虚拟机,32或者64bit都可以。

TOP

返回列表
网页右侧QQ悬浮滚动在线客服
网页右侧QQ悬浮滚动在线客服