레이블이 YouCompleteMe인 게시물을 표시합니다. 모든 게시물 표시
레이블이 YouCompleteMe인 게시물을 표시합니다. 모든 게시물 표시

vim ycm arm64 build error

vim 을 실행하면 설치된 youcompleteme 플러그인이 동작하지 않아 :YcmRestartServer 를 실행하나라는 등의 메시지가 발생하는 경우가 있다.
이때 다음과 같이 다시 빌드해주면 된다.
cd ~/.vim/plugged/youcompleteme/ && git submodule update --init --recursive && python ./install.py --all --verbose

그런데 빌드 링크 과정에서 다음과 같이 absl(abseil) 가 arm64 라서 실패한다.
[100%] Linking CXX shared library /Users/ysoftman/.vim/plugged/youcompleteme/third_party/ycmd/ycm_core.cpython-312-darwin.so
Undefined symbols for architecture arm64: "absl::lts .... 

아키텍쳐별 다음과 absl이 설치되어 있다.
ls /usr/local/lib/libabsl*  (x86_64)
ls /opt/homebrew/lib/libabsl* (arm64)

arm64 터미널/쉘(arch 명령으로 확인) 환경이라 arm64 를 찾아야 될것 같은데 그렇지 못하고 x86_64 를 찾는것 같다.

빌드시 arm64 경로를 찾을 수 있게 다음과 같이 환경변수를 설정했지만 빌드시 여전히 에러가 발생했다.
export LIBRARY_PATH=/opt/homebrew/lib

다음과 같이 x86_64 경로의 absl 을 삭제(의존성이 있는 패키지들도 모두 삭제했다)하면 빌드가 성공한다.
arch -x86_64 /usr/local/bin/brew uninstall abseil

#####

nvim 에서 플러그인 새로 설치(빌드)시 ~/.local/share/nvim/site/parser/*.so 파일들이 x86 로 빌드되는 문제가 발생했다.
이것도 x86_64 경로의 tree-sitter 를 삭제하고 빌드하면 된다.
arch -x86_64 /usr/local/bin/brew uninstall tree-sitter

golang vim-go GOBIN error

# go 1.19.2 버전 설치 후 .go 파일을 열때 다음과 같은 에러가 발생했다.
# :messages 로 확인해보면
vim-go: 'go env GOBIN' failed
vim-go: could not determine appropriate working directory for gopls
FileNotFoundError: [Errno 2] No such file or directory: '/Users/ysoftman/.vim/plugged/youcompleteme/third_party/ycmd/third_party/go/bin/gopls'

# vim plug 를 업데이트해도 에러가 발생한다.
:PlugUpdate

# 참고로 vim-go 최신 소스를 보면 go env gobin > $GOBIN > GOPATH./bin 순으로 찾고 있다.

# 다음과 같이 설정해도 에러가 발생한다.
# GOBIN (go install 시 실행 binary 설치 경로)
go env -w GOBIN=/Users/ysoftman/workspace/gopath/gopath/bin
go env GOBIN

# 원인은 go 실행 자체가 안되는것이 문제였다.
# go 신규 버전 설치시 macOS(darwin)환경인데 linux 바이너리파일을 설치한것이 문제였다.
# go1.19.2.linux-amd64.tar.gz -> go1.19.2.darwin-amd64.tar.gz 로 변경해서 설치해고 go 가 실행된다.
# 이제 GOBIN 을 설정하지 않아도(GOPATH/bin 로 찾는다.) 에러가 없다.
go env -w GOBIN=

# vim-plug 라면 go binary 업데이트도 해주자.
:GoUpdateBinaries

# ycmd 에러 관련해서는 다음과 같이 설치하면 된다.
cd ~/.vim/plugged/youcompleteme/third_party/ycmd/
git checkout master
git pull
git submodule update --init --recursive
./build.py --go-completer

ycmd server SHUT DOWN 에러 해결하기

# youcompleteme(ycm) 플러그인을 설치 후 vim 시작시 다음과 같은 에러가 발생한다.
# 참고로 ycm 은 클라이언트이고 third_party/ycmd 에 서버 소스가 있다.
The ycmd server SHUT DOWN (restart with ':YcmRestartServer')

# 다음과 같이 인스톨을 다시 해줘야 한다.
cd ~/.vim/plugged/youcompleteme
git submodule update --init --recursive
./install.py --all --verbose

# 만약 ./install.py 수행시 c++11 지원 안된다는 에러가 발생하는 경우
CMake Error at CMakeLists.txt:247 (message):
  Your C++ compiler does NOT fully support C++11.

# gcc 는 있지만 g++ 이 설치되어 있지 않아서다.
# 다음과 같이 g++ 를 설치 후 ./install.py
sudo yum install gcc-c++

# 만약 다음과 같은 에러가 발생하는 경우
fatal error: pyconfig.h:

# python-devel 을 설치 후 ./install.py
sudo yum install python-devel

#####

# M1(arm64) 맥북 환경에서 다음과 같이 빌드시 clang 에러가 발생했다.
./install.py --all --verbose

# 원인은 pyenv 로 설치한 python3.12(~/.pyenv/shims/python)가
# 설치시 다음과 같이 gcc 로 빌드해서였다.
CC=/opt/homebrew/bin/gcc-13 pyenv install -v 3.12

# clang 으로 다시 빌드해 설치 후
pyenv install -v 3.12

# ycmd 를 다시 빌드하면 된다.
./install.py --all --verbose

Prev