cygwin的安装中途种种遭遇

本文详细介绍Cygwin的安装过程及解决安装过程中遇到的各种问题,包括安装方式的选择、下载站点推荐、断点续传技巧等。

参考1     参考2

这几天一直在安装cygwin,以前都是要登陆linux,自从知道cygwin可以在windows下模拟linux环境时,那真是激动啊,于是准备也装一个,不装不知道,一装才知道问题重重啊,弄好了这个,那个又坏了,下面我就把我遇到的问题跟打击分享一下:

一,安装阶段

1. 下载、运行安装向导文件
  一开始的下载方法,了解Cygwin的人都知道:就是到http://www.cygwin.com 中先当个安装向导文件setup.exe,这个是Cygwin的官方下载安装向导文件,而且也只能通过它才能正确下载最新的Cygwin版本。
setup.exe
下载完毕,双击运行,程序安装向导界面如下图所示

Cygwin完全下载指南

点击“下一步” 继续,准备选择Cygwin的安装方式。
2. 选择安装方式

    一共有三种安装方式
  (1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
  (2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
  (3)Install from Local Directory:不下载安装文件,从本地某个含有安装文件的目录进行安装。
强烈建议选择第(2)项,以便于能够手工指定安装路径。然后再点击“下一步”。
3. 设置安装文件的本地存储路径

   由于我们选择的是直接下载的安装方式,所以必需指定好一个本地下载文件存储目录。安装目录所在的驱动器剩余空间必须足够(若要完全下载,至少需要600M以上的空间)。设置好后,点击“下一步”。
4. 选择连接方式

     共有三种连接方式选择:
  (1)Direct Connection:直接连接。
  (2)Use IE5 Settings:使用IE的连接参数设置进行连接。
  (3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址和端口号)。
   用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”。
5. 选择下载站点

   推荐一个站点:ftp://mirrors.kernel.org,又快又稳定。用户也可以自由决定倒底用哪个站点进行下载。

     注:最近在学校实验室发现ftp://ftp.ntu.edu.tw这个站点的下载速度超快,如果上面的站点速度慢,大家可以尝试一下这个站点。

点击“下一步”,向导会显示下图所示的信息:

Cygwin完全下载指南

注意!这并不是正式的下载,而只是安装向导从下载镜像站点上获取压缩过的安装列表文件。这个安装列表文件是Cygwin统一指定的,并随着新版本的发布而更新。安装向导就是通过它来得知究竟可以下载什么不能下载什么。并且该下载列表文件中还有包含有每个下载文件的MD5验证码,非常重要。
6.   选择所要下载/安装的安装包内容

   安装列表文件下载完毕,向导会显示列表中的内容,供用户自由选择到底需要下载哪些安装包。如何选择呢?只需用鼠标点击每个安装包名后面那个循环箭头图标即可:图标后面的文字是表示究竟对该安装包采取何种下载/安装方式,并随着点击而不断变化,共有这么几类:
  (1)Default:这是默认选择,表示只下载/安装该包的缺省安装项(可点击包左边的+号展开,看看缺省安装究竟是些什么内容)。
  (2)Install:表示要下载/安装该包的全部内容。所要求的空间也最大。
  (3)Reinstall:表示重新下载/安装该包的内容(以上一次正常下载/安装时所选择的内容为准)。这个选项非常有用,稍后在下篇中会有说明。
  (4)Uninstall:这个就不用解释了吧。
  
用户可根据自己的实际需要,来准定究竟下载/安装哪些内容。推荐选择“Install”方式,一步到位,免得日后被各种这样那样的问题所困扰。
  至于窗口顶部那些“Keep”、“Prev”、“Curr”、“Exp”等等选项,只是用来改变当前树结构的显示方式的,对下载/安装没有什么影响。用户可以用默认的“Exp”。然后点击“下一步”,就要开始正式进行下载啦。
7. 下载

Cygwin完全下载指南

上图所显示的,就是下载进度窗口。可以看到当前下载的文件名称、文件大小、下载进度、总体下载进度等等关键信息。若当时选择的是Install方式以便下载全部文件,则下载时间会比较长,这时用户大可睡个觉或者干点其他事情。慢慢等吧。
  如果用户的运气足够好,也许能够一次性的下载成功。若真能这样,恭喜恭喜!但如果你和我一样不幸,比如突然弹出下面这样一个窗口:

Cygwin完全下载指南

    或者,有更倒霉的一个文件已经下载了98%,整个进度已进行了16%,向导却像死掉了一样,一动不动了。更有甚者,有一次我总体进度已经到了99%了,结果就僵在那里了。一但用户在下载过程中碰到了这种情况,不能浪费时间继续等待,因为那时安装向导实际上已经被中止了和站点的连接,只是它仍在那里不停的循环,不停的徒劳的尝试而已。我们唯一要做的也是唯一能做的,就是点击“取消”按钮,关闭该向导!不要心疼已经下载的那部分安装文件,不用担心,已经下载完毕的文件不会消失,而且还仍将有用。
   这句话很重要 :关闭向导程序后,再重新运行它(一定要用你原先用的那个,而不能重新再当一个),一路“下一步”下去(详细步骤可参阅上篇的内容,但要注意的是,进行本地下载存储路径设置时,必须和原先下载时的设置保持一致!),直到出现站点选择窗口;这时候,千万千万别去选择其他站点!仍旧选择你第一次下载时选择的那个!而且,向导程序也会根据你的下载日志,自动获得并定位到该镜像站点上。所以,这时你唯一要做的,就是点击“下一步”。熟悉的安装包下载选择界面又出现了。这个时候,要进行的设置就非常关键了:把ALL后面的Install改为Reinstall!Reinstall方式在安装时是表示重新安装,但在下载的时候表示的就是继续下载!点击“下一步”。

   向导程序现在已经知道你要继续上次的一载/续传了,它就会根据已经生成好的下载日志文件,对现有已经下载好的文件逐个做一把MD5校验码的Checking(如下图所示),确定已下载的部分没有任何问题。

Cygwin完全下载指南

不用点“下一步",向导程序会自动切换到下载界面中。
  
需要说明的是,这时候总的下载进度稍稍有不同:不再是整个下载的进度了,而是你剩余的需要下载的文件的进度。所以,当你看到一开始仍是0%时,大可不必担心。你原先下载的文件都在。
  如果在续传时,安装向导程序又罢工了,只需将以上步骤重新来一遍即可,这种断点续传方式虽然土了点、怪异了点,可的确能保证你的下载能持续下去,直到全部 500多兆的Cygwin安装文件下载完成。至此,本下载指南算是完成任务了。
  顺便提醒一下:
  (1)在用户指定的本地存储路径内,安装向导程序会生成类似这样的一个目录:http%3a%2f%2fmirrors.kernel.org%2fsources.redhat.com%2fcygwin,这就是你下载文件的真正所在目录。还会生成两个日志文件:setup.log和setup.log.full,用户感兴趣的活,可以打开来看看,对了解Cygwin的下载机制有不少帮助。
  (2)
 如果用户线路不是很好的话,可选择晚上11:00以后至早上8:00点这一段时间,进行Cygwin的下载,那时候人少,连接比较稳定,速度也有保证:我在下载时,曾达到了180KB/s的高速,这对于连接一个国外下载站点来说,已经是相当快的了。

 二、安装之后

我选择的是先下载到本地然后再点击安装的,我本来以为安装好了,但是,还有更坑的,我点击桌面上的cygwin快捷方式,谁知道又是minitty找不到路径,怎么办呢,再重新安装一次吧,不行,网上搜吧,有人说下载一个minitty放入bin试试,我有下载了一个,放入里边还是不行,我是真的泪奔啊,又开始上网搜啊,又有人说,干脆完全重新装一次吧,于是乎,我又按着步骤重新再安装一次,all后面改成Reinstall,这次我也真没包多大希望的,试试吧,反正都折腾了几十次了,又是等了个大概20分钟安装好了,打开试试吧,你猜怎么着,竟然打开了,而且还可以用,输了个命令竟然可以运行了,真是怪了啊,我想以前大概是安装过程中出错了,漏掉了一些重要文件吧,反正是困难重重的安装经历。



<think>我们正在处理用户关于Vitis编译代码时卡住不动的问题。根据用户描述,在Cygwin环境中运行make命令时,程序会卡在某个位置,而在Linux环境下则可以顺利编译。用户怀疑是gcc和ar编译命令的问题,但环境变量中已包含这些命令的路径。 结合引用内容分析: -引用[1]提到在Cygwin中运行make时出现报错,可能是由于xilinx.mk文件在不同分支的差异导致,或者是在2021_R1分支运行时卡住。用户观察到卡在gcc和ar编译命令处,尽管这些命令存在。 -引用[2]展示了Vitis的基本使用流程,但未涉及编译卡住的问题。 -引用[3]则显示了一个makefile报错的具体信息,但错误信息与用户描述不完全匹配。 可能的原因及解决方案:1.**环境问题**:Cygwin环境可能缺少必要的依赖库或工具链组件。尽管gcc和ar存在,但可能版本不匹配或配置不正确。2. **并行编译问题**:有时并行编译(make-j)会导致卡住,可尝试单线程编译(make-j1)。3.**资源限制**:Cygwin环境下资源(如内存)不足,导致编译过程卡住。 4. **文件路径或权限问题**:Cygwin对Windows路径的转换可能引发问题,或者文件权限不足。5.**特定版本问题**:用户使用的分支(2021_R1)可能存在已知问题,建议检查Xilinx官方论坛或更新补丁。解决步骤:1.**验证环境变量**:确保Cygwin的环境变量正确设置,特别是交叉编译工具链的路径。可以通过`echo$PATH`检查,并运行`gcc--version`和`ar--version`验证工具可用性。 2. **单线程编译**:尝试`make -j1`来避免并行编译可能导致的死锁。3.**检查资源**:观察卡住时的系统资源占用(内存、CPU),如果资源耗尽,考虑关闭其他程序或增加资源。 4. **使用绝对路径**:在makefile中使用绝对路径(Cygwin格式)来避免路径转换问题。 5. **清理重建**:运行`make clean`后重新编译。6.**查看详细日志**:通过`makeVERBOSE=1`输出详细编译信息,定位卡住的具体命令。 7. **对比Linux环境**:将Linux环境下成功编译的配置(如环境变量、工具版本)应用到Cygwin。8.**更新或切换分支**:如果问题与分支相关,尝试更新到最新分支或使用稳定分支。如果以上步骤无法解决,建议在Linux环境下进行开发,或向Xilinx技术支持提供详细日志。</think>### Vitis 编译代码卡住问题的解决方法 根据您描述的编译卡住现象(尤其在Cygwin环境),结合引用信息[^1][^3],以下是系统性的解决方案: #### 一、核心问题诊断 1. **环境兼容性问题** Cygwin 对 Windows 路径转换存在限制,可能导致: - 工具链路径识别错误(如 `gcc/ar` 命令实际存在但无法调用) - 文件路径包含空格或特殊字符时卡死 *验证方法:* ```bash # 在Cygwin中手动执行卡住位置的命令 arm-none-eabi-gcc --version # 替换为实际卡住的命令 ``` 2. **编译脚本缺陷** 引用[^3]显示 `make.libs` 相关错误,表明: - Makefile 存在递归依赖问题 - 并行编译(`make -j`)导致资源竞争 3. **工具链资源限制** Windows 环境下易发生: - 内存不足(Vitis 工具链需 >8GB 空闲内存) - 防病毒软件锁定临时文件 --- #### 二、分步解决方案 **步骤1:基础环境修复** ```bash # 在Cygwin中清理并单线程编译 make clean make -j1 VERBOSE=1 # 输出详细日志 ``` - 观察卡住的具体命令,检查路径是否包含 `C:/` 格式(应转换为 `/cygdrive/c/`) **步骤2:关键配置修改** 1. 修改 Makefile: ```makefile # 禁用并行编译(注释掉 -j 参数) # MAKEFLAGS += -j8 ``` 2. 显式声明工具链路径: ```makefile CC := /cygdrive/c/Xilinx/Vitis/2021.1/gnu/aarch32/nt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc ``` **步骤3:资源优化** - 关闭防病毒软件实时扫描 - 增加虚拟内存至 16GB 以上 - 在 `vivado.bat` 中添加内存限制解除: ```bat set XILINX_VIVADO=%CD% set XILINX_NO_MMU=1 # 禁用内存管理单元冲突 ``` **步骤4:跨平台方案(推荐)** 如引用[^1]所述,Linux 环境兼容性更佳: 1. 在 Ubuntu 中安装相同版本的 Vitis 2. 复制工程文件到 Linux 系统 3. 使用原生编译: ```bash source /tools/Xilinx/Vitis/2021.1/settings64.sh make clean make ``` --- #### 三、替代方案(无需Cygwin) 1. **Vitis GUI 直接编译**(引用[^2]方法): - 在 Vitis IDE 中右键项目 → `Build Project` - 通过图形界面查看实时编译日志 2. **Windows 原生编译**: ```cmd :: 使用 Xilinx 自带的 cmd 环境 call C:\Xilinx\Vitis\2021.1\settings64.bat cd /d <project_path> make -j1 ``` --- #### 四、终极措施 若仍卡住,需检查: 1. **硬件描述文件(.xsa)兼容性** 使用 `xsct` 验证平台: ```tcl platform validate -pf <platform_path> ``` 2. **版本回退** 如引用[^1]所述切换至稳定分支: ```bash git checkout 2021_R1 # 或官方推荐的稳定标签 ``` > **根本原因总结**:Cygwin 在 Windows 下的 POSIX 兼容层与 Vitis 工具链存在资源调度冲突,尤其在递归编译(`make.libs`)时易触发死锁。Linux 环境因原生支持 GNU 工具链,稳定性显著提升[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值