2012-12-17 148 views
0

當我嘗試編譯代碼的隨機項目:塊,Cygwin的編譯器會引發有關自己的庫文件未定義引用錯誤:Cygwin的編譯器:未定義參考

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(_cygwin_crt0_common.o):_cygwin_crt0_common.cc:(.data+0x0): 
undefined reference to `___real__Znwj' 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(_cygwin_crt0_common.o):_cygwin_crt0_common.cc:(.data+0x8): 
undefined reference to `___real__ZdlPv' 

我連接網絡鏈路庫以及WS2_32.lib

這是一個編譯器問題?

+3

在情況下,它的某種線索,'__Znwj'是全球運營商'新符號(unsigned int)'和'__ZdlPv'用於全局'operator delete(void *)'。我不知道'___ real'前綴表示什麼。我猜你只需要在C++庫中鏈接,如果爲鏈接步驟調用'g ++'命令,應該自動完成。你知道什麼命令code :: blocks正在使用鏈接該程序嗎? –

+0

@MichaelBurr是對的。 __Znwj是編譯過程中發生的名稱混亂。 – cowboydan

+0

@MichaelBurr Code :: blocks正在運行此命令:_g ++ - 3.exe -LC:/ Users/Public/Documents/PROJEKTE/chatserver/-LD:/ CodeBlocks/include -LC:/ Users/Public/Documents/PROJEKTE/chatserver/-o ChatServer.exe .objs/main.o -lnetlink /cygdrive/c/Users/Public/Documents/PROJEKTE/chatserver/WS2_32.Lib -lnetlink C:/ Users/Public/Documents/PROJEKTE/chatserver/WS2_32。 Lib_ – SebBau

回答

0

其他提示,它來自_cygwin_crt0_common.cc。所以顯然有一些中心缺失。你使用的是Cygwin版本的gcc,對吧?有你的嘗試-lcygwin?您也可以嘗試-mno-cygwin

我的建議是正常使用香草MinGW的,創建乾淨的Windows二進制文件(在損失的POSIX功能)..

+0

'-mno-cygwin'已在MinGW */Cygwin GCC中被刪除/棄用。 – rubenvb

+0

哇,我不知道。但它在一年前是「只有」......而我試圖避免像地獄一樣的cygwin。 – rioki

+0

我相信MinGW * GCC 4.6在通過'-mno-cygwin'時會產生錯誤,這是一年多以前。 Python distutils的原因在該平臺上不可用。 – rubenvb

相關問題