Cygwin 介绍 安装 基本使用 交叉编译vivi kernel

网友投稿 1437 2022-09-25

Cygwin 介绍 安装 基本使用 交叉编译vivi kernel

Cygwin 介绍 安装  基本使用 交叉编译vivi kernel

Cygwin 安装  基本使用 交叉编译vivi kernel

引言:

初学linux时,需要转换系统是最头疼得事,因为windows和linux各有优点,各有用途,所以只能麻烦的在两者之间切换,反复的重启。开机时也麻烦,因为初学者大多数使用windows,装了linux后,开机会自动启动linux(当然,可以通过在安装过程中设置或按装结束后修改相应文件来决定启动时先引导哪个系统),想进入windows还要坐在电脑旁死等。Cygwin 恰好解决了这个问题。

介绍:

1  .cygwin 是windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。

特点:

1.    cygwin只是模拟一个unix的环境有助于初学者学习,现在也可以在windows下开发一些程序。但他所支持的命令没有新版本的LINUX多,它是一个不是很完整的UNIX系统。

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

-与安装:

1.解释: 本来安装个软件是个很简单的事情,不过初次接触cygwin.往往有很多人折腾了数日才搞定。主要是原因是:我们以往在windows上装个软件,通常只是在网上-个setup.exe安装包,然后就可以在没有网络的情况下,双击setup.exe,随时就可以安装啦。Cygwin也是要-一个setup.exe,不过这个setup.exe可不是安装包,而只是用来-和定制安装包的,-定制完成后,才是真正的安装(就不必需要网络啦),待会儿就明白啦。

点击“下一步”,出现三个选项,即三种安装方式:

(1)  Install from Internet:直接从Internet上-并立即安装(安装完成后,-好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。   (2) Download Without Installing:只是将安装包-到本地,但暂时不安装。   (3) Install from Local Directory:不-安装文件,直接从本地某个含有安装文件的目录进行安装(得保证你的计算机上已经用setup.exe在网上-了安装包)。

选择你要把cygwin安装在何处,我装在f盘啦。其它默认就行啦。

确定后单击“下一步”。出现下面界面,确定要把安装包(就是用setup.exe -下来的安装包,用来真正安装cygwin模拟环境的那个安装包)放在哪个地方,以备以后用于直接安装cygwin模拟环境。确认方式和上面一样,我将之放在f盘自己建立的一个文件夹cygwinset中。

确定后单击“下一步”,出现如下界面。出现三种连接方式,

(1)Direct Connection:直接连接。(2)Use IE5 Settings:使用IE的连接参数设置进行连接。(3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址和端口号)。

直接默认选择:选项(1)就行啦,直接单击“下一步”,稍等片刻出现如下界面:(图略)

界面中列出多个-站点,我是选的默认项,(一定记住你选择的站点),可能-速度有不同吧,直接“下一步”。

安装向导正从-镜像站点上获取压缩过的安装列表文件,片刻便出现如下界面,即安装列表文件界面。

可以看到“all” 后面有个“Default” 字符,即为默认安装,单击”default”可依次变为”install” ,“reinstall”;”reinstall”先不用管,“Default“默认安装时很多如vivi,gcc 等都不会被安装,单击“all” 后面“Default”成为”install“,全部安装即可。出现如下界面:

单击”下一步“就好好等着吧,我用了一天左右。

安装完毕后,最后一个界面提示是否建立桌面快捷方式,直接打“\/“就成,然后”确定“就彻底完工啦。我的 f盘的 cygwinset 文件夹中看到名为” ftp%3a%2f%2fcygwin.dp.ua%2fpub%2fmirrors%2fcygwin“安装包,你的可能是”进入 cygwin 虚拟环境。

第二个关键动作:安装方式时选择,选择”Reinstall“,而不是”install“啦,这样单击“下一步”就可从原来的进度继续-安装。否则将从零开始啦。。

使用:

在使用cygwin虚拟环境之前要设置一下环境变量PATH。PATH变量被cygwin应用程序作为搜索可知性文件的路径列表.如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin\bin,其中x:\cygwin 是你的系统中的cygwin目录。例如我的则是f:\cygwin.则PATH=f:\cygwin\bin. 设置方法如下:

单击“确定”,好啦,现在可以使用啦,双击桌面图标进入cygwin。

1.      最先想做的是,查看windows的内容。

输入指令“mount”

$mount

出现能查看的所有目录》》

主机上的c盘 对应  /cygdrive/c

想查看c盘,输入指令:

$cd  /cygdrive/c

要查看c盘内容:

$ls

对d ,e, f盘查看,同理

Cygwin常用指令与linux下基本一致,请自行查阅。不过我的cygwin 能查看文件,无法编辑文件,vi 后,键盘输入不正常。只能在windows下建立。在windows下建立的c文件是可以在cygwin下编译和运行的。

插入一个小问题:再查看 windows的文件时,有些文件名 两个 单词之间有空格。

查看时 可在中间插入“\”。例如想查看c盘的 Program  Files 文件夹,先进入c盘然后指令如下:

$cd  Program\  Files

即可。

交叉编译vivi,kernel:

1.      安装arm-linux-gcc交叉编译环境:

(1)      先在X:\cygwin下建立个文件夹如:opt。

(2)      将arm-linux-gcc 的压缩包解压在opt中。我的是

arm-linux-toolchains_cygwin.tgz

$cd opt

$tar zxvf  arm-linux-toolchains_cygwin.tgz

Opt 目录出现FriendlyARM目录,内为交叉编译工具源码。

修改启动脚本/etc/profile文件(可在Windows中用文本编

X:\cygwin\etc\profile)中的PATH环境变量为PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/bin:$PATH

输入命令:“ arm-linux-gcc –v ”  确认是否安装成功

2. 编译vivi:

由于VIVI要用到kernel的一些头文件,所以需要kernel的源代码,将vivi和kernel都压到/FriendlyARM下

然后需修改/friendly-arm/vivi/Makefile里的一些变量设置

LINUX_INCLUDE_DIR = /friendly-arm/kernel/include

CROSS_COMPILE   = arm-linux-ARM_GCC_LIBS=/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/lib/gcc-lib/arm-linux/2.95.3

据说为确保编译的有效性,最好在编译之前将vivi里所有的“*.o”和“*.o.flag”删的掉,不过我没找到,也就没管。

进入/FriendlyARM/vivi目录里,输入“make menuconfig”,开始选择配置。注意Exit时一定要选“Yes”保存配置。

再输入“make”正式开始编译,一会儿就完了。如果不报错,在FriendlyARM/vivi里面就有你自己的“vivi”了。

3. 编译kernel:      kernel的源程序在上面编译vivi时已经解到/friendly-arm/kernel中了。因为这个程序包已在linux 中编译过 ,有一些中间和目标代码和Cygwin是不兼容的。必须先处理一下,否则不能正常进行编译。

进入/friendly-arm/kernel目录,可以输一下“make menuconfig”试试。结果提示出错。这是由于配置脚本已在Linux中编译过,在scripts/lxdialog里产生了一个Linux下的可执行程序lxdialog。在Cygwin里这是个坏东西,它既不能执行,还会阻止可执行程序的生成。必须把它删掉,目录如下:     /FriendlyARM/kernel/scripts/lxdialog/lxdialog

顺便把同一文件下的所有.o 文件也都删除,看准啦,别把.c 源文件删啦!

再执行“make zImage”应该可以完成编译了。如果出现如下提示:make: *** No rule to make target `/friendly-arm/kernel/include/asm/arch/param.h', needed by `/friendly-arm/kernel/include/asm/param.h'. Stop.

则 先“make dep”

再 “make zImage”

等一会儿,就会在//FriendlyARM/kernel/arch/arm/boot目录里会生成你编译的zImage 。

顺便提示一下:有时候cygwin 会出现显示不完全现象,比如“make dep” 后,就可能出现,不用管,只要make dep 一段时间,屏幕不动,ls 能使用,就直接输入“make zImage”生成内核啦。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微服务开发是什么?放弃微服务,为什么重回单体架构?
下一篇:apache/IIS共用80端口四法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~