2011-02-17 62 views
22

我已经在cygwin中安装了所有软件包。我还将C:\ cygwin \ bin添加到我的PATH变量中。但是当我尝试在命令行中编译一个C++文件时,出现错误“访问被拒绝”。相同的命令在cygwin批处理窗口中工作。有谁知道什么是错的?尝试使用g ++从命令行进行编译时,“访问被拒绝”。 Cygwin

编辑:我改变了gcc和g ++的权限。我不再收到'拒绝访问'错误,但得到一个新的错误:“此版本的C:\ cygwin \ bin \ g ++。exe与您正在运行的Windows版本不兼容。请检查计算机的系统信息查看您是否需要该程序的x86(32位)或x64(64位)版本,然后联系软件发布者。“

enter image description here

enter image description here

回答

27

因为c:\cygwin\bin\gcc.exe不是可执行文件,它是一个cygwin的符号链接。

$ file /bin/gcc 
/bin/gcc: symbolic link to `/etc/alternatives/gcc' 
$ file /etc/alternatives/gcc 
/etc/alternatives/gcc: symbolic link to `/usr/bin/gcc-4.exe' 

底层文件运行得很好。

C:\cygwin\home\Ben>gcc-4 --version 
gcc-4 (GCC) 4.5.0 
Copyright (C) 2010 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+9

只是为了澄清,OP需要键入的是`g ++ - 3`或`g ++ - 4`(取决于安装的内容)而不是`g ++`。 – 2011-07-15 00:22:43

3

除非你是一个受虐狂,否则总是在Cygwin可执行文件中使用Cygwin批处理窗口。此外,如果您使用Cygwin编译的gcc,则需要使用Cygwin DLL来运行结果。 Cygwin website解释了原因。如果你需要没有Cygwin DLL的可执行文件,我会探索MinGW

4

我刚刚删除了gcc和g ++并重命名为g ++/cc-4。

相关问题