2012-12-17 113 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

相关问题