cygwin的安装使用以及交叉编译环境的搭建

环境说明:
主机: windows XP  IP设为10.0.22.79

开发板:君正4740,操作系统为Linux   IP设为10.0.22.200

目录:
关于Cygwin

Cygwin的安装
gcc的使用,以编译运行c文件和c++文件为例

交叉编译环境的搭建

NFS的搭建

将交叉编译环境集成到Eclipse

 

一.关于Cygwin

1   cygwin windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unixwindows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。
2.    cygwin只是模拟一个unix的环境有助于初学者学习,现在也可以在windows下开发一些程序。但他所支持的命令没有新版本的LINUX多,它是一个不是很完整的UNIX系统。

3.    vmware,qemu等虚拟机软件,以vmware为例,是先在windows中安装vmware虚拟机,再在vmware虚拟机上面用linux 光盘或iso镜像安装完整的linux系统,vmware功能是虚拟一个cpu。与用虚拟机相比,Cygwin本身就是linuxwindows环境下的部分替代物,占用资源相对较少,同时功能与真实感也更小,还有些不完善之处。

 

二.Cygwin的安装:

我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是:

    http://www.cygwin.com/

或者直接使用下载连接来下载安装程序,下载连接是:

    http://www.cygwin.com/setup.exe

下载完成后,运行setup.exe程序,出现安装画面。直接点下一步,出现安装模式的对话框,如下图所示:

我们看到有三种安装模式[因为网速问题,笔者推荐用第二、三种,即先下载再安装,而且第二步过后,查看一下安装目录的大小,如果安装全部组件的话大小应该在1.4G多,如果过小需要重新下载]

  • Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
  • Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
  • Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin

从上述三种模式中选择适合你的安装模式,这里我们选择第一种安装模式,直接从网上安装,当然在下载的同时,Cygwin组件也保存到了本地,以便以后能够再次安装。选中后,点击下一步

这一步选择Cygwin的安装目录,以及一些参数的设置。默认的安装位置是C:/cygwin/,你也可以选择自己的安装目录,然后选择下一步

这一步我们可以选择安装过程中从网上下载的Cygwin组件包的保存位置,选择完以后,点击下一步

这一步选择连接的方式,选择你的连接方式,然后点击下一步,会出现选择下载站点的对话框,如下图所示,

在这一步,需要注意,为了获得最快的下载速度,我们首先在列表中寻找Cygwin中国镜像的地址:http://www.cygwin.cn,如果找到就选中这个地址;如果找不到这个地址,就在下面手动输入中国镜像的地址:http://www.cygwin.cn/pub/,再点击“Add”,然后再在列表中选中。选择完成后,点击下一步

这一步,我们选择需要下载安装的组件包,为了使我们安装的Cygwin能够编译程序,我们需要安装gcc编译器,默认情况下,gcc并不会被安装,我们需要选中它来安装。为了安装gcc,我们用鼠标点开组件列表中的“Devel”分支,在该分支下,有很多组件,我们必须的是:

binutils
gcc
gcc-mingw
gdb

鼠标点击组件前面的循环按钮,会出现组建的版本日期,我们选择最新的版本安装,下图是选中后的四类组件的截图:


binutils组件


gcc组件


gcc-mingw组件


gdb组件

选完以后,我们选择下一步,进入安装过程,如下图所示,

安装的时间依据你选择的组件以及网络情况而定。安装完成后,安装程序会提示是否在桌面上创建Cygwin图标等,点击完成退出安装程序。
# 安装完毕后在windows下设置环境变量:
点击“我的电脑-属性-高级-环境变量”,在“系统变量”列表中找到Path,编缉它,在变量值中添加cygwin的安装目录,如:D:/software/cygwin2/bin
# 在终端下访问windows上的磁盘,如D盘:$ cd /cygdrive/d  $ cd d:
# 在终端下运行windows的命令,如:$ cmd.exe,退回到bash shell的命令为:$ exit

三.gcc的使用:
cygwin终端下,用vi编缉器写一个hello world.c小程序,用gcc编译后执行:


再编译运行一个c++程序:

 

四.交叉编译环境的搭建:
将交叉编译器(这里是君正光盘里自带的for winxp目录下的编译器,for linux的编译器不行)copycygwin的安装目录下,如
D:/software/cygwin2/opt
cygwin终端下解压,并在目录/etc/profile文件中添加环境变量如下:
PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH
#
检验:退出cygwin,重新启动一个终端,输入:mipsel-linux-gcc –v,如果显示版本信息,说明交叉编译环境已经搭建好。

五.NFS的搭建:
Step1.初始 NFS Server 設定

check 一下 nfs-server 套件是否安裝完成,

$ cygcheck -l nfs-server

查看一下nfs-server 安裝設定文件:

 $ less /usr/share/doc/Cygwin/nfs-server-2.3-1.README

初始設定 nfs-server-config

 $ /usr/bin/nfs-server-config

 grep: /usr/share/doc/Cygwin/nfs-server-2.3-1.README: No such file or directory

 This script sets up a default configuration for running an NFS server under

 Cygwin.   As part of this setup, the script will do the following:

   1) Create a user account to run the services under [OPTIONAL]

   2) Install portmap, mountd, and nfsd as Windows services

   3) Create a sample exports file

   4) Create a sample uid/gid mapping file.

 After installing, please read the nfs-server README for Cygwin:

   /usr/share/doc/Cygwin/nfs-server-2.3-1.README

 This document contains notes on installation and documents known problems

 and workarounds with the NFS server, ex:

 Do you want to continue? (yes/no) 輸入yes

 You can choose to install the services so that they run under the local system

 account, or under a separate user account.   Which option you should choose

 depends on which version of Windows you are running:

   Windows 2000 : You may run nfsd under either a local system account or

                   a separate user account.   You _probably_ want to run under

                  the local system account.

   Windows XP    : You _must_ run nfsd under a separate user account.

 If you choose to run nfsd under a separate user account, you will be prompted

 for an user name and password.   If the user name you supply does not exist,

 it will be created.

 Do you want to run nfsd under a separate user account? (yes/no) 输入yes

其中需要设置用户名与密码时,一定要设置成与windows登录一致的

 Installing portmap service...

 Installing mountd service...

 Installing nfsd service...

 Creating sample /etc/exports file...

 Creating sample /etc/nfs/server.map file...

 /usr/bin/nfs-server-config: line 223: UID: readonly variable

 

Step2.分享設定及安全性設定

設定分享的資料夾

 $ vi /etc/exports      (/backup資料夾先建立)

 在最后一行输入下面一行,其中/opt是主机上共享的目录:

/opt 10.0.22.79/255.255.255.0<rw,async,no_root_squash>

安全性設定(可跳过)

 $ vi /etc/hosts.allow

 portmap : 127.0.0.1 : allow                     //允許本機可存取

 portmap : 192.168.1.0/255.255.255.0 : allow     //允許此網段可存取

 portmap : ALL : deny

設定好分享後記得 showmount 一下,若出現下列錯誤訊息則是因為 portmap 服務還沒啟動,所以會跟你說 rpc 有問題

 $ /usr/sbin/showmount.exe

 mount clntudp_create: RPC: Program not registered

 

Step3.服務啟動

啟動服務

 cygrunsrv -S portmap

 cygrunsrv -S mountd

 cygrunsrv -S nfsd

停止服務

 cygrunsrv -E portmap

 cygrunsrv -E mountd

 cygrunsrv -E nfsd

顯示服務狀態

 cygrunsrv -Q portmap

 cygrunsrv -Q mountd

 cygrunsrv -Q nfsd

可以到任务管理器中看到服务已经启动

再运行

$ /usr/sbin/showmount

可见到类似的

Hosts on levovo-39020020

10.0.22.200

localhost

 

Step4. 开发板上运行

$ mount –o nolock 10.0.22.79:/opt /share

其中10.0.22.79:/opt 是主机上的共享目录,/share是开发板上的挂载目录

 

六.将交叉编译环境集成到Eclipse

1.搭建windows下的交叉编译环境,参见步骤四。
注意,步骤四中在cygwin的终端下设置环境变量与在“我的电脑-属性-高级-环境变量”中添加变量Path的值的效果是相同的。

2.下载并安装Eclipse (for C/C++),下载后需要安装JDK才能运行Eclipse

3.Eclipse下建立一个C ProjectToolchains框中选择Cygwin GCC

4.点击Finish

5.写一个简单的c程序,编译运行后,可在windows下执行

6.现在在Eclipse下将编译器由gcc转变为mipsel-linux-gcc
点击Project-Properties,在C/C++ Build-Settings下将Cygwin C CompilerCygwin C Linker中的Command值都改写为mipsel-linux-gcc(之前为gcc

7.点击OK,重新编译链接程序,生成的可执行文件即可运行在Linux上了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值