2013-07-01 1 views
1

내가 쿠분투 12.04에서 (나에 의해 작성되지 않음) 프로그램을 컴파일하기 위해 노력하고있어 (정의되지 않은 기호) libexpat.so 사용하지 않으며 그것은 실패 다음링커는

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_xml-2.8.so: undefined reference to symbol 'XML_SetUserData' 
/usr/bin/ld: note: 'XML_SetUserData' is defined in DSO /usr/lib/x86_64-linux-gnu/libexpat.so so try adding it to the linker command line 
/usr/lib/x86_64-linux-gnu/libexpat.so: could not read symbols: Invalid operation 
collect2: ld returned 1 exit status 

나는 고정

g++ [...] -L/usr/lib/x86_64-linux-gnu [...] -lwx_baseu_xml-2.8 [...] -lm -lexpat [...] 

가 어떻게/디버그이 문제를 해결할 수있는 다음 Makefile의 실수 부부,하지만, 난 여전히 올바른 위치에서 명령 줄 -lexpat을 포함 않는 한 문제가, 여기, 그리고 분명히 이해하지?

답변

1

플래그에 -v -Wl,-v을 추가하면 collect2ld의 명령 줄을 볼 수있었습니다.

어떤 이유에서 원본 Makefile은 대부분의 오브젝트 파일 앞에 라이브러리 (-L-l 옵션)를 넣었습니다. 커맨드 라인의 끝 부분에 라이브러리를 놓고 컴파일합니다.

관련 문제