2011-02-17 105 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。

相關問題