2012-11-17 3 views
0

많은 사람들이 텔레파시 능력을 가지고있는 것은 아니지만, 가능한 한 많은 정보를 제공하려고 노력할 것입니다. 누군가 내가 컴파일하려고하는 일부 프로그램에서 링커 오류라고 생각하는 것을 디버그하도록 도울 수 있습니다.링커 오류 : 어떻게 될 수 있습니까?

따라서 프로그램은 cilkprof입니다 (here 경고 : tgz 파일 참조). 그 안에 Makefile이 있는데 그 중 단지 CXX = icpcCXX = g++으로 바꿨습니다. 다른 모든 것은 평등합니다.

/usr/bin/ld: ../../3rdparty/pintool/intel64/lib/libpin.a(util_host_ia32e.os): 
relocation R_X86_64_PC32 against symbol `DoXsave' can not be used when making a shared object; recompile with -fPIC 
/usr/bin/ld: final link failed: Bad value 
collect2: error: ld returned 1 exit status 
make: *** [linux64/cilkprof.so] Error 1 

은 내가 libpin.a-fPIC로 다시 컴파일되어야한다는 것을 이해한다 알고 있지만, 내가 가지고있는 핀 버전이 이미 컴파일됩니다. 내가 뭘 잘못하고 있을지 모르겠다. 뭔가 명확하지 않은지 물어보십시오. 감사.

+0

공유 라이브러리를 만드시겠습니까? – iabdalkader

+0

@mux : 예 .so 라이브러리 인 –

답변

1

Makefile이 공유 라이브러리를 만들고 AFAIK 인 정적 PIC가 아닌 라이브러리에 연결하려고합니다. 사용자가 할 수없는 일입니다. 따라서 -fPIC으로 라이브러리를 다시 컴파일 할 수 없다면 Makefile을 수정하고 대신 정적 라이브러리를 빌드하는 것이 유일한 해결책입니다.

+0

입니다. 확인해 드리겠습니다. 감사. –