2013-05-03 3 views
0

제 서버가 우분투 12.04에 있습니다.elocation 공유 객체를 만들 때`.rodata '에 대한 R_X86_64_32를 사용할 수 없습니다. -fPIC로 다시 컴파일하십시오.

여기 사용할 수있는 Levenshtein-MySQL을 UDF를 설치하려고 해요 : 내 서버에 여기 levenshtein.c 파일을 https://github.com/jmcejuela/Levenshtein-MySQL-UDF

내가 한 .zip을 다운로드 위치 : /home/username/levenshtein.c

를 내 터미널에서 다음 명령을 입력하면

는 :

/usr/bin/ld: /tmp/ccCPQijg.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 
:

gcc -o levenshtein.so -shared /home/username/levenshtein.c -I /usr/include/mysql/ 

을이 오류를 obten

/tmp/ccCPQijg.o는 : LD 내가 그것을 해결하고 내가 빌드 - 필수 설치하는 방법을 찾을 수있는 오류를 봤 1 개 종료 상태

을 반환하지만, 내가 가진 후 : 잘못된 값을 collect2를 : 문자를 읽을 수 없습니다 같은 오류.

나는 내가 다시 컴파일해야하는지 제대로 다시 컴파일 -fPIC을 사용하는 방법을 모르겠어요 ...

나는 나의 약간 다른 주제를 많이 발견하고 나도 몰라 무엇을 나는 내 문제를 해결하기 위해 지금 할 수있다.

누구든지 나를 도울 수 있습니까?

감사합니다 ;-) 내가 같은 문제가 없었다

BBFUNK01

답변

0

. build-essential 설치 컴파일이 -fPIC 플래그를 사용하여 라이브러리를 공유 한 후 :

gcc -fPIC -o levenshtein.so -shared /home/username/levenshtein.c -I /usr/include/mysql/ 

이런 경우에 나는 또한 libc6-dev를 설치합니다.

관련 문제