无法让 YouCompleteMe 工作 - 几个下游安装问题
Cannot get YouCompleteMe to Work - Several Downstream Installation Issues
多年来我一直在使用 YouCompleteMe,最近发现 Python 的自动完成功能无法正常工作。我在日志中看到了“Python 版本 None 不受支持”这一行的错误。我会 post 在这里进行完整跟踪,但不幸的是,我现在已经过了这一点,如果不付出大量努力和回溯就无法重建错误。
我翻了一下,发现我的YCMthird_party目录下的Jedi版本没有Python3.9的语法文件。我认为这意味着它有一段时间没有更新了,因为 Jedi 使用的 parso 的 github 存储库确实包含这个文件 ("grammar39.txt").
因此,为了解决这个问题,我尝试使用 VimPlug 卸载并重新安装 YCM,方法是将其从我的 .vimrc 中删除,运行ning :PlugClean,然后将其添加回去并 运行宁:PlugInstall.
完成此操作后,我转到我的 YCM 目录并尝试 运行 安装过程 运行 进入此错误:
CMake Error at CMakeLists.txt:232 (message):
Your C++ compiler does NOT fully support C++17.
我尝试安装和使用 gcc-8,然后是 gcc-10,虽然在这两种情况下,我都能够克服上述错误,但我现在收到以下错误:
building '_watchdog_fsevents' extension
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9/src
gcc-10 -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -DWATCHDOG_VERSION_STRING="2.0.1" -DWATCHDOG_VERSION_MAJOR=2 -DWATCHDOG_VERSION_MINOR=0 -DWATCHDOG_VERSION_BUILD=1 -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c src/watchdog_fsevents.c -o /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9/src/watchdog_fsevents.o -std=c99 -pedantic -Wall -Wextra -fPIC -Wno-nullability-completeness -Wno-nullability-extension -Wno-newline-eof -Wno-error=unused-command-line-argument
cc1: error: '-Wno-error=unused-command-line-argument': no option '-Wunused-command-line-argument'; did you mean '-Wunused-dummy-argument'?
cc1: note: unrecognized command-line option '-Wno-newline-eof' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-nullability-extension' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-nullability-completeness' may have been intended to silence earlier diagnostics
error: command '/usr/local/bin/gcc-10' failed with exit code 1
Failed to build watchdog module.
我完全卡住了。我已经做了好几个小时了,真的不知道从这里该做什么,或者为什么 YCM 说明不直接告诉你需要什么版本才能让它工作。
我使用的是 Macbook 运行ning Mojave 10.14.6
我正在使用 Vim8.2
非常感谢帮助。
发生这种情况的原因是我使用的通过 Xcode 安装的 clang 编译器版本已过时。我在 Mojave 上,在升级到更新的 OS 之前,我无法更新我的 Xcode(从而升级我的 clang)。简单来说,对于macs,Mojave太老了,无法通过正常的安装路径安装YCM的当前分支。我已经和开发人员谈过了,这可能会在不久的将来在自述文件中注明。
多年来我一直在使用 YouCompleteMe,最近发现 Python 的自动完成功能无法正常工作。我在日志中看到了“Python 版本 None 不受支持”这一行的错误。我会 post 在这里进行完整跟踪,但不幸的是,我现在已经过了这一点,如果不付出大量努力和回溯就无法重建错误。
我翻了一下,发现我的YCMthird_party目录下的Jedi版本没有Python3.9的语法文件。我认为这意味着它有一段时间没有更新了,因为 Jedi 使用的 parso 的 github 存储库确实包含这个文件 ("grammar39.txt").
因此,为了解决这个问题,我尝试使用 VimPlug 卸载并重新安装 YCM,方法是将其从我的 .vimrc 中删除,运行ning :PlugClean,然后将其添加回去并 运行宁:PlugInstall.
完成此操作后,我转到我的 YCM 目录并尝试 运行 安装过程 运行 进入此错误:
CMake Error at CMakeLists.txt:232 (message):
Your C++ compiler does NOT fully support C++17.
我尝试安装和使用 gcc-8,然后是 gcc-10,虽然在这两种情况下,我都能够克服上述错误,但我现在收到以下错误:
building '_watchdog_fsevents' extension
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9
creating /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9/src
gcc-10 -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -DWATCHDOG_VERSION_STRING="2.0.1" -DWATCHDOG_VERSION_MAJOR=2 -DWATCHDOG_VERSION_MINOR=0 -DWATCHDOG_VERSION_BUILD=1 -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c src/watchdog_fsevents.c -o /Users/genche/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/watchdog_deps/watchdog/build/3/temp.macosx-10.14-x86_64-3.9/src/watchdog_fsevents.o -std=c99 -pedantic -Wall -Wextra -fPIC -Wno-nullability-completeness -Wno-nullability-extension -Wno-newline-eof -Wno-error=unused-command-line-argument
cc1: error: '-Wno-error=unused-command-line-argument': no option '-Wunused-command-line-argument'; did you mean '-Wunused-dummy-argument'?
cc1: note: unrecognized command-line option '-Wno-newline-eof' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-nullability-extension' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-nullability-completeness' may have been intended to silence earlier diagnostics
error: command '/usr/local/bin/gcc-10' failed with exit code 1
Failed to build watchdog module.
我完全卡住了。我已经做了好几个小时了,真的不知道从这里该做什么,或者为什么 YCM 说明不直接告诉你需要什么版本才能让它工作。
我使用的是 Macbook 运行ning Mojave 10.14.6 我正在使用 Vim8.2
非常感谢帮助。
发生这种情况的原因是我使用的通过 Xcode 安装的 clang 编译器版本已过时。我在 Mojave 上,在升级到更新的 OS 之前,我无法更新我的 Xcode(从而升级我的 clang)。简单来说,对于macs,Mojave太老了,无法通过正常的安装路径安装YCM的当前分支。我已经和开发人员谈过了,这可能会在不久的将来在自述文件中注明。