Vim 你完成了我的安装问题

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

我正在尝试在我的大学服务器上安装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/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。我引用了,但我用了一点不同的方式

  • 首先检查您自己的libdir中是否有
    libpython2.7.so
    (在您的例子中是~/lib/)。如果只有
    libpython2.7.a
    ,您可能需要为共享库重新编译python。请参阅。简而言之,您应该转到python源代码,然后:

    ./configure --enable-shared \
                --prefix=$HOME \
                LDFLAGS="-Wl,--rpath=$HOME/lib
    make
    make install
    
  • 如果您的系统本身有Python,您可能会遇到麻烦。问题似乎是:

  • /usr/bin/ld:/usr/local/lib/libpython2.7.a(abstract.o):在创建共享对象时,不能使用针对“.rodata.str1.8”的重新定位R_X86_64_32;使用-fPIC/usr/local/lib/libpython2.7.a重新编译:无法读取符号:错误值

    在这种情况下,请参阅并返回步骤1

    否则,请继续

  • 现在我假设您的libdir中有
    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