2012-12-17 1 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 *)'에 대한 것입니다. ''___ 진짜 '접두어가 무엇을 의미하는지 모르겠습니다. C++ 라이브러리에 링크 만하면된다. 링크 단계에서'g ++'명령이 호출되면 자동으로 수행되어야한다. command code :: 블록이 프로그램을 링크하는 데 사용하는 정보를 알고 있습니까? –

+0

@MichaelBurr이 옳습니다. __Znwj는 컴파일 프로세스 중에 발생하는 이름 변환입니다. – cowboydan

+0

@MichaelBurr 코드 :: 블록에서 실행중인 명령 : _g ++ - 3.exe -LC :/사용자/공용/문서/PROJEKTE/채팅 서버/-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를 사용하는 것이 일반적입니다 (POSIX 특징의 손실에) 깨끗한 윈도우 바이너리를 생성합니다 .. 경우

+0

MinGW */Cygwin GCC에서'-mno-cygwin'이 제거되거나 더 이상 사용되지 않습니다. – rubenvb

+0

와우, 나는 그걸 몰랐다. 하지만 그것은 1 년 전의 "유일한"... 그리고 나는 지옥처럼 cygwin을 피하려고 노력한다. – rioki

+0

MinGW * GCC 4.6은'-mno-cygwin'을 넘겨 줄 때 오류가 발생한다고 믿습니다. 그게 1 년도 더 넘었습니다. 파이썬 distutils가 그 플랫폼에있는 것처럼 쓸모 없기 때문입니다. – rubenvb

관련 문제