C++ 获得;“访问被拒绝”;当试图用g++;从命令行。西格温

C++ 获得;“访问被拒绝”;当试图用g++;从命令行。西格温,c++,gcc,g++,cygwin,C++,Gcc,G++,Cygwin,我已经在cygwin中安装了所有软件包。我还将C:\cygwin\bin添加到我的PATH变量中。但是当我试图编译命令行中的C++文件时,我会得到错误的“访问被拒绝”。同样的命令在cygwin批处理窗口中工作。有人知道怎么了吗 编辑:我更改了gcc和g++的权限。我不再收到“拒绝访问”错误,但收到一个新错误:“此版本的C:\cygwin\bin\g++.exe与您正在运行的Windows版本不兼容。请检查计算机的系统信息,查看您是否需要x86(32位)或x64(64位)版本的程序,然后与软件发行

我已经在cygwin中安装了所有软件包。我还将C:\cygwin\bin添加到我的PATH变量中。但是当我试图编译命令行中的C++文件时,我会得到错误的“访问被拒绝”。同样的命令在cygwin批处理窗口中工作。有人知道怎么了吗

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


因为
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.

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

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

我遇到了同样的问题,因为我在Cygwin安装后等待重新启动。重新启动后对我有效。

我只是想澄清一下,OP需要键入的是
g++-3
g++-4
(取决于安装的内容),而不是
g++
。我很惊讶,对于cygwin的符号链接可执行文件导致的这个一般性问题没有明确的响应。我想知道我是否能找到一个清晰的解释和适当的解决办法。