注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

不透明的雾的博客

人生是一次记忆的旅行

 
 
 

日志

 
 
 
 

关于gcc on windows的“拒绝访问”问题【转】  

2010-10-12 17:30:00|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

装了个GCC on Windows,本想可以爽一把,但不料:

关于gcc on windows的“拒绝访问”问题【转】 - 不透明的雾 - 不透明的雾的博客

cygwin里面的gcc也是同样的问题。

打开gcc所在目录,发现gcc.exe只有56个字节,咦,太小了吧,什么东东哦,用ultraEdit打开:
关于gcc on windows的“拒绝访问”问题【转】 - 不透明的雾 - 不透明的雾的博客

注意到了吗?这是一个“symlink” (符号链接,linux下链接的一种,还有一种是硬链接,这里你可以把符号链接简单地理解为windows下的“快捷方式”),呵呵,windows怎么可能认识符号链接这种高级货。
并且我们注意到这个符号链接是指向etc/alternatives/下的,说明其肯定是为了兼容多个版本的gcc而搞的这么个符号链接。
在gcc.exe所在的目录下,发现了两个shell脚本(set-gcc-default-3.sh和set-gcc-default-4.sh),更是证明了这个观点啊,打开set-gcc-default-4.sh瞧瞧:

#!/bin/bash

# We only switch the alternatives that exist for both compilers;
# gdc, gpc, g77 and gfortran never get switched.

for x in gcc g++ gcj gnat ; do
  /usr/sbin/alternatives --set $x /usr/bin/$x-4.exe
doneなるほど ~~~

看到了吗,gcc, g++, gcj, gnat 都被映射到了对应的XXX-4版本

所以,解决方案就很容易得到啦:
1, 删掉 gcc.exe, g++.exe, gcj.exe, gnat.exe 这四个东东,要着也没用,windows不认识

2, 在相同目录下,选择你所需要的gcc,g++, gcj, gnat版本,我这里选择xxx-4版(其实我电脑上根本就没-3版),所以我选中gcc-4.exe, g++-4.exe, gcj-4.exe, gnat-4.exe, 复制他们得到各个副本,并将副本重命名为gcc.exe, g++.exe, gcj.exe, gnat.exe

3, 如果你电脑上有多个版本,并且某个时候又想切换到其他版本上去,那么goto step 1

注意:gcj和gnat不一定存在于你的电脑中,没有的话,略过即可,其他的诸如abc.exe拒绝访问的话,同理咯...

问题搞定:

关于gcc on windows的“拒绝访问”问题【转】 - 不透明的雾 - 不透明的雾的博客

实际上也不一定非要删除这些文件,你只需要把编译器的文件名设置为gcc-4即可

  评论这张
 
阅读(77)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017