2010-11-07 86 views
1

我試着使用Cygwin建立一些我的插件爲Linux(保持搞砸了Linux虛擬機,所以我決定嘗試建立Cygwin的,因爲我也不會動我的所有的軟件開發工具包什麼不)。一切似乎都還好,除了我得到了錯誤「GCC:錯誤嘗試執行「cc1plus:沒有這樣的文件或目錄」,所以我對GCC 4.3上安裝了G ++ 4.3。一旦我這樣做了,我現在正在接受大量的錯誤。正在垃圾郵件主要的有...使用Cygwin建立 - C鏈接模板

錯誤:模板與C鏈接 錯誤:模板專業化與C鏈接

這些被垃圾郵件上的文件從成千上萬的用戶使用的SDK編譯,所以我知道這是不是一個「晃來晃去ç的extern」但我假設我缺少一個包什麼的。在Ubuntu中,安裝build-essential可以修復所有這些問題,但是我對Cygwin很感興趣。任何幫助將非常感激。

編輯

這裏是確切的錯誤的ampaste它噴涌http://www.ampaste.net/m3d0a864f

從Sourcehook.h第一個是因爲Linux的顯然不是在Cygwin中定義的,而是從休息'hl2sdk'讓我不知所措。

+0

回答你的括號問題:使用MinTTY終端(它有一個Cygwin軟件包);它比標準的Windows更友好。但是,即使在Windows終端中,您也可以獲得一個回滾緩衝區 - 單擊窗口圖標以獲取菜單,選擇屬性,然後在那裏設置「屏幕緩衝區大小」。給出一個非常大的高度,然後你可以向上滾動。 – 2010-11-07 01:39:50

+0

你究竟在編譯什麼,會拋出所有這些錯誤?一些示例代碼在這裏很有用。 – 2010-11-07 01:41:17

+0

謝謝,MinTTY比標準Cygwin好得多。這裏是我所有日誌的粘貼,它基本上只是一個小插件,但這發生在我嘗試使用此SDK進行編譯的任何事情上。我之前在Ubuntu上遇到過這些問題,但構建 - 必要的修復了它。我假設一些包已關閉。 http://www.ampaste.net/m3d0a864f – 2010-11-07 02:25:55

回答

0

我知道你說有沒有懸掛的extern「C」 ...但是,爲什麼,即使是一個問題給你如何GCC編譯而不是克++ ???(這將在事實上,愉快地對待smsdk_ext.cppç和NOT C++文件......與所有的都這樣做的錯誤和痛苦...)


你經常會看到這樣的錯誤消息時錯誤包括文件的標籤的extern「C」。 (或不正確標記視情況而定。)

你的錯誤信息也表明難度重載函數...

platform.h: In function ‘double fsel(double, double, double)’: 
platform.h:470: error: declaration of C function 'double fsel(double, double, double)' 
conflicts with 
platform.h:466: error: previous declaration 'float fsel(float, float, float)' 

和問題與系統(編譯器)文件。

In file included from /usr/include/sys/signal.h:104, 
      from /usr/include/signal.h:5, 
      from /usr/include/pthread.h:15, 
      from /cygdrive/... 
/usr/include/cygwin/signal.h:74: error: expected ‘;’ before ‘*’ token 
/usr/include/cygwin/signal.h:97: error: ‘uid_t’ does not name a type 

In file included from /usr/include/signal.h:5, 
      from /usr/include/pthread.h:15, 
      from /cygdrive/... 
/usr/include/sys/signal.h:163: error: ‘pthread_t’ was not declared in this scope 
/usr/include/sys/signal.h:163: error: expected primary-expression before ‘int’ 
/usr/include/sys/signal.h:163: error: initializer expression list treated as compound expression 

因此,無論你的編譯器的安裝實在是被改寫的OR ...


或者,另一種方法是先從最小的Hello World程序,看看是否有編譯。然後建立起來,包括你需要的東西,直到你遇到問題。 (或者利用現有的軟件和簡化它,直到找到問題區域。先從一個「G ++」線,複製文件,並削減了下去,直到問題消失。也許你有一個的#define的typedef與在系統文件中一些衝突。)

0

@Mr。Ree:「C++源文件通常使用後綴之一.C,.cc,.cpp,.CPP,.C++,.cp或.cxx; C++頭文件通常使用.hh,.hpp,。 H或(對於共享模板代碼).tcc;以及預處理的C++文件使用後綴.ii。GCC可以識別具有這些名稱的文件,並將它們編譯爲C++程序,即使您調用編譯器的方式與編譯C程序(通常名稱爲gcc)。「 GCC代表GNU編譯器集合已經有一段時間了。 http://linux.die.net/man/1/gcc