MinGW로 컴파일시 link 에러에 관한 질문입니다.
글쓴이: aeronova / 작성시간: 수, 2006/08/02 - 4:14오전
안녕하세요, 제가 웹에서 다른 사람이 windows용으로 컴파일한 library를 example 코드를 가지고 테스트 중 알기 힘든 링크 에러가 나서 질문을 올립니다. 우선 windows용 library 이름이 dliblip.dll, dliblip.lib 이렇게 2개가 있습니다. *.dll은 windows 동적 library인줄 아는데, *.lib는 windows 정적 library인가요? 좌우간 테스트용 코드인 liblipex.cpp와 2개의 library를 같은 디렉토리에 위치시키고 다음처럼 command line에서 컴파일을 시도하였습니다.
g++ liblipex.cpp -ldliblip -L.\ -lm
이후 다음과 같은 "undefined reference"에 관한 에러를 줄줄이 얻었습니다.ㅜㅜ
C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x3c7): undefin ed reference to `SLipIntBasic::ComputeLocalLipschitz(int, int, double*, double*) ' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x466): undefin ed reference to `SLipIntBasic::Value(int, int, double*, double*, double*, int*)' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x569): undefin ed reference to `LipIntComputeLipschitzSplit' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x58b): undefin ed reference to `LipIntComputeLocalLipschitz' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x5b4): undefin ed reference to `LipIntValueLocal' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x656): undefin ed reference to `LipIntValue' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x694): undefin ed reference to `LipIntInfValue' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x6c5): undefin ed reference to `STCSetLipschitz' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x6e7): undefin ed reference to `STCBuildLipInterpolant' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x748): undefin ed reference to `STCValue' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x761): undefin ed reference to `STCFreeMemory' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x77b): undefin ed reference to `STCInterpolant::STCInterpolant()' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x7bb): undefin ed reference to `STCInterpolant::SetData(int, int, double*, double*, int)' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x7d3): undefin ed reference to `STCInterpolant::SetConstants(double)' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x7e1): undefin ed reference to `STCInterpolant::Construct()' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x861): undefin ed reference to `STCInterpolant::Value(int, double*)' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x8fb): undefin ed reference to `STCInterpolant::FreeMemory()' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x913): undefin ed reference to `STCInterpolant::~STCInterpolant()' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text+0x96e): undefin ed reference to `STCInterpolant::~STCInterpolant()' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text$_ZN7SLipIntD1Ev [SLipInt::~SLipInt()]+0xb): undefined reference to `vtable for SLipInt' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text$_ZN12SLipIntBas icD2Ev[SLipIntBasic::~SLipIntBasic()]+0xb): undefined reference to `vtable for S LipIntBasic' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text$_ZN7SLipIntC1Ev [SLipInt::SLipInt()]+0x16): undefined reference to `vtable for SLipInt' C:\DOCUME~1\gtg106p\LOCALS~1\Temp/cceQaaaa.o:liblipex.cpp:(.text$_ZN12SLipIntBas icC2Ev[SLipIntBasic::SLipIntBasic()]+0x9): undefined reference to `vtable for SL ipIntBasic' collect2: ld returned 1 exit status
library를 제공한 사람의 문서를 뒤져보면 "__stdcall" option으로 컴파일되었다는 것 이외엔 별 특이 사항이 없습니다.
흠... 고수님들 도움 부탁드립니다.
Forums:
댓글 달기