Vim 你完成了我的安装问题
我正在尝试在我的大学服务器上安装YouCompleteMe,该服务器运行Debian Linux(在我的用户主页中)。 当我跑步时:Vim 你完成了我的安装问题,vim,vim-plugin,Vim,Vim Plugin,我正在尝试在我的大学服务器上安装YouCompleteMe,该服务器运行Debian Linux(在我的用户主页中)。 当我跑步时: ./install.sh 在“构建CXX对象”阶段之后,我遇到了以下错误 [98%]构建CXX对象ycm/cmakfiles/ycm_core.dir/ycm_core.cpp.o [100%]构建CXX对象ycm/cmakfiles/ycm_client_support.dir/versioning.cpp.o [100%]构建CXX对象ycm/cmakfil
./install.sh
在“构建CXX对象”阶段之后,我遇到了以下错误
[98%]构建CXX对象ycm/cmakfiles/ycm_core.dir/ycm_core.cpp.o
[100%]构建CXX对象ycm/cmakfiles/ycm_client_support.dir/versioning.cpp.o
[100%]构建CXX对象ycm/cmakfiles/ycm_client_support.dir/ycm_client_support.cpp.o
链接CXX共享库/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/ycm\u client\u support.so
/usr/bin/ld:/home/arenduc1/lib/。/lib/libpython2.7.a(abstract.o):在创建共享对象时,不能使用针对`_Py_NotImplementedStruct'的重新定位R_X86_64_32S;用-fPIC重新编译
/home/arenduc1/lib/。/lib/libpython2.7.a:无法读取符号:错误值
collect2:错误:ld返回了1个退出状态
make[3]:***[/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/ycm\u client\u support.so]错误1
make[2]:***[ycm/CMakeFiles/ycm\u client\u support.dir/all]错误2
make[2]:***等待未完成的工作。。。。
链接CXX共享库/home/arenduc1/.vim/bundle/YouCompleteMe/third_party/ycmd/ycm_core.so
/usr/bin/ld:/home/arenduc1/lib/。/lib/libpython2.7.a(abstract.o):在创建共享对象时,不能使用针对`_Py_NotImplementedStruct'的重新定位R_X86_64_32S;用-fPIC重新编译
/home/arenduc1/lib/。/lib/libpython2.7.a:无法读取符号:错误值
collect2:错误:ld返回了1个退出状态
make[3]:***[/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/ycm\u core.so]错误1
make[2]:***[ycm/CMakeFiles/ycm_core.dir/all]错误2
make[1]:***[ycm/CMakeFiles/ycm_support_libs.dir/rule]错误2
make:**[ycm\U支持库]错误2
回溯(最近一次呼叫最后一次):
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py”,第196行,在
Main()
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py”,主文件第189行
BuildYcmdLibs(getcmakargs(args))
BuildYcmdLibs中的第152行文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py”
_err=sys.stderr)
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/third\u party/sh/sh.py”,第1021行,在调用中__
返回RunningCommand(cmd、call_args、stdin、stdout、stderr)
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/third\u party/sh/sh.py”,第486行,在__
self.wait()
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/sh/sh.py”,第500行,正在等待
self.handle\u命令\u退出代码(退出代码)
文件“/home/arenduc1/.vim/bundle/YouCompleteMe/third\u party/ycmd/third\u party/sh/sh.py”,第516行,在句柄命令退出代码中
raise exc(self.ran、self.process.stdout、self.process.stderr)
sh.ErrorReturnCode_2:
RAN:“/usr/bin/make-j2ycm_support_libs”
标准:
标准:
错误消息显示“使用-fPIC重新编译”我必须重新编译什么?谢谢。我刚刚解决了这个问题;和你的一样:我安装了自己的Python。我引用了,但我用了一点不同的方式
libpython2.7.so
(在您的例子中是~/lib/)。如果只有libpython2.7.a
,您可能需要为共享库重新编译python。请参阅。简而言之,您应该转到python源代码,然后:
./configure --enable-shared \
--prefix=$HOME \
LDFLAGS="-Wl,--rpath=$HOME/lib
make
make install
libpython2.7。稍微更改一下~/.vim/bundle/YouCompleteMe/third\u party/ycmd/build.py
:
- 修改函数
CustomPythonCmakeArgs()
,替换
python_library = '{0}.a'.format( lib_python )
与
- 在附近加一条线
python_executable = '{0}/bin/python'.format( python_prefix )
python解释器可能位于其他位置,请相应地进行更改
- 将返回值从
return [
'-DPYTHON_LIBRARY={0}'.format( python_library ),
'-DPYTHON_INCLUDE_DIR={0}'.format( python_include ),
]
到
- 也要记得注释掉
if OnMac():
full_cmake_args.extend( CustomPythonCmakeArgs() )
像这样
# if OnMac():
full_cmake_args.extend( CustomPythonCmakeArgs() )
~/.vim/bundle/YouCompleteMe
,然后重新安装
./install.py --clang-completer
您是否编译了自己的python版本?(为什么它在
~/lib/libpython2.7.a
上寻找python?)是的,我有自己的python。。我选中了~/lib/libpython2.7.a,文件存在。。我必须重新安装python吗?也许吧?我真的不知道。我猜python的配置很奇怪。它也应该是vim编译时使用的相同版本。
if OnMac():
full_cmake_args.extend( CustomPythonCmakeArgs() )
# if OnMac():
full_cmake_args.extend( CustomPythonCmakeArgs() )
./install.py --clang-completer