내 운영 체제 환경인 centos 6.6에서 vim용 YCM 플러그인을 설치할 때 오류가 발생합니다.
vim은 자체적으로 컴파일되며 해당 해석 언어 지원이 추가되었습니다.
시스템에 포함된 Python 버전은 2.6입니다. 버전 2.7과 3.4를 컴파일하고 추가했기 때문에 제 환경에는 이 세 가지 버전이 있습니다.
YCM 디렉터리에 들어가서 설치 명령을 실행하면 다음 오류가 발생합니다.
[90%] CXX 개체 빌드 ycm/CMakeFiles/ycm_client_support.dir/Result.cpp.o
CXX 공유 라이브러리 연결 /home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/ycm_client_support.so
/usr/ bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): 공유 객체를 만들 때 `_Py_NotImplementedStruct'에 대한 R_X86_64_32S 재배치를 사용할 수 없습니다. -fPIC
/usr/local/lib/로 다시 컴파일하세요. libpython2.7.a: 기호를 읽을 수 없습니다: 잘못된 값
collect2: 오류: ld가 1
gmake[3]을 반환했습니다. * [/home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/ycm_client_support. so] 오류 1
gmake[2]: * [ycm/CMakeFiles/ycm_client_support.dir/all] 오류 2
gmake[1]: * [ycm/CMakeFiles/ycm_support_libs.dir/rule] 오류 2
gmake : * [ycm_support_libs] 오류 2
Traceback(가장 최근 호출 마지막):
파일 "/home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/build.py", 327행, <모듈> ;
파일 "/home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/build.py", 316행, Main
으아악파일 "/home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/build.py", 261번째 줄, BuildYcmdLibs
으아악파일 "/usr/local/lib/python2.7/subprocess.py", 540행, check_call
으아악subprocess.CalledProcessError: '['cmake', '--build', '.', '--target', 'ycm_support_libs', '--', '-j', '1']' 명령이 비-반환됨 제로 종료 상태 2
추적(가장 최근 호출 마지막):
파일 "./install.py", 32행, <module>
파일 "./install.py", 21번째 줄, Main
으아악파일 "/usr/local/lib/python2.7/subprocess.py", 540행, check_call
으아악subprocess.CalledProcessError: '['/usr/local/bin/python', '/home/xuanyuan/k-vim/bundle/YouCompleteMe/third_party/ycmd/build.py']' 명령이 0이 아닌 종료 상태 1을 반환했습니다.
해결책을 찾고 계십니까?
phpcn_u15822017-05-16 16:39:45
해결됨:
1단계: python2.7의 공유 라이브러리가 없습니다. python2.7을 다시 컴파일하고 설치하고 컴파일 옵션 --enable-shared를 추가하세요.
문제가 해결되면 다음 오류가 발생하면 다음 단계를 수행할 필요가 없습니다.
여러 버전의 Python으로 인해 발생할 수 있습니다. 다음 오류:
python: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다: libpython2.7 .so.1.0: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다
이 오류에 대한 해결 방법:
2단계:
/etc/ld.so.conf 파일을 편집하고 /usr/local/lib 콘텐츠를 추가합니다. Can이라는 새 줄을 직접 추가하세요.
저장 후 다음 명령을 실행합니다(--->는 명령 프롬프트이며 필요에 따라 누구나 설정할 수 있습니다):
---> /sbin/ldconfig
--->