희래네 작은 집

OS X/Linux(Ubuntu) C, C++ 개발 환경 구축 본문

C

OS X/Linux(Ubuntu) C, C++ 개발 환경 구축

희래 2016. 5. 24. 10:45

목표 : OS X, Linux(Ubuntu) 에서 vim과 clang/llvm 을 기본으로 한 C, C++ 개발 환경 구축하기


https://github.com/chocownd/xnixc.git


1. OS X

1) 2016년 상반기 현재 OS X 는 10.11 El Capitan이 출시된 상황이고 기본 컴파일러로 clang/llvm 이 탑재된 상황.

$ xcode-select --install

$ clang --version 으로 확인 가능.




2) MacVim 설치

바이너리 설치가 편하다.

https://github.com/macvim-dev/macvim/releases

최신 MacVim.dmg 받아서 MacVim.app 은 Application으로, mvim 은 /usr/local/bin 으로.

bash_profile alias 설정을 통해 vi or vim 을 mvim -v 으로 해주면 터미널에서 MacVim 사용 가능. vim 명령 모드에서 version 커맨드로 확인.




3) CMake 설치(for ycm)

$ brew install CMake




4) ctags 설치

$ brew install ctags

실행 : projectroot$ ctags -R

사용법: http://danguria.tistory.com/207




5) 내 vimrc git repo에서 pull 해서 적용

vim backup 파일을 저장할 directory 생성

$ mkdir ~/.vimbackup




6) Vundle 설치

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

vimrc 설정(3 - 에서 완료)

설치 후 $ vim +PluginInstall +qall




7) YouCompleteMe 설치

YCM 컴파일 설치

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

프로젝트 root directory에 적절한 .ycm_extra_conf.py 설정파일 위치시키기(~/.vim/ycm_extra_conf_set 에 개인적으로 만들어놓은 파일 사용)

혹은 ~/.vim 에 .ycm_extra_conf.py 파일 생성 후 https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py 복붙후 vimrc에서 global 사용 설정(해당 부분 사용안함 주석처리 해제)

(http://neverapple88.tistory.com/26)




8) nerdtree 설치

vundle 로 설치(http://vi.stackexchange.com/questions/5335/how-install-nerdtree-with-vundle)

vimrc 설정(3 - 에서 완료)




9) cscope 설치

$ brew install cscope

mkcscope.sh

#!/bin/sh

rm cscope.files cscope.out


find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files

cscope -i cscope.files


$ chmod 755 mkscope.sh

$ cp mkscope.sh projectroot

projectroot$ ./mkcscope.sh


vimrc 설정(3 - 에서 완료) 단, csprg 의 위치는 다를  수 있으므로 확인해야 함


사용법: http://blog.naver.com/ikariksj/140024963956




10) Tag List 설치

vundle로 설치(taglist-plus)

vimrc 설정(3 - 에서 완료) 단, Tlist_Ctags_Cmd 의 위치는 다를 수 있으므로 확인해야 함




11) easytags 설치

vundle로 설치(https://github.com/xolox/vim-easytags installation 참고)

vimrc 설정(3 - 에서 완료) 단, easytags_cmd 의 위치는 다를 수 있으므로 확인해야 함




12) vim-airline 설치

vimrc 설정(3 - 에서 완료)

powerline font 설치(https://powerline.readthedocs.io/en/latest/installation.html#fonts-installation)




13) iterm2와 vim 설정

preferences - profile - terminal xterm-256color 체크 확인

preferences - profile - text - 'Non-ASCII Font' 에서 powerline font로 변경(for vim-airline)

bash_profile 에서 export TERM="xterm-256color"




2. Ubuntu(14.04)

1) http://llvm.org/apt/ 에서 Ubuntu Trusty(14.04) section 참고 하여 clang/llvm 설치


아래와 같이 apt repository 설정


llvm ppa

 : $ sudo apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main"(http://apt.llvm.org/)

deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main


wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -



$ sudo apt-get update


* 2016/08/04 현재 최근(Trusty - 14.04 Mon, 01 Aug 2016 20:09:11 UTC / Revision: 277344) llvm package가 업데이트 되면서 공식 메뉴얼(http://apt.llvm.org/) 이 제대로 동작하지 않는다. 문제가 있는 패키지는 libllvm3.8로, clang-3.8 설치시 의존성을 갖는 패키지로 libllvm3.8v4 를 설치하는데, 이후 libllvm3.8 을 설치하려 하면 기존에 설치된 libllvm3.8v4와 충돌이 일어난다. 따라서, 메뉴얼에서 libllvm3.8 을 libllvm3.8v4 로, 이에 의존성을 갖는 패키지인 libllvm3.8-dbg를 libllvm3.8v4-dbg로 변경한다.


apt-get install clang-3.8 clang-3.8-doc libclang-common-3.8-dev libclang-3.8-dev libclang1-3.8 libclang1-3.8-dbg libllvm-3.8-ocaml-dev libllvm3.8v4 libllvm3.8v4-dbg lldb-3.8 llvm-3.8 llvm-3.8-dev llvm-3.8-doc llvm-3.8-examples llvm-3.8-runtime clang-format-3.8 python-clang-3.8 lldb-3.8-dev liblldb-3.8-dbg libc++-dev libc++abi-dev


$ sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang

$ sudo ln -s /usr/bin/clang++-3.8 /usr/bin/clang++




2) YouCompleteMe 를 위한 vim 버전은 14.04에서 기본인 7.4.52 로 충분

=> 더 이상 불충분하여 https://launchpad.net/~jonathonf/+archive/ubuntu/vim 를 이용해 8.0 으로 업그레이드 하였음




3) CMake 설치(for ycm)
$ export CC=/usr/bin/clang-3.8
$ export CXX=/usr/bin/clang++-3.8
$ sudo apt-get install make
$ wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
$ tar -xvzf cmake-3.5.2.tar.gz
$ cd cmake-3.5.2
$ ./configure
$ make
$ sudo apt-get install checkinstall
$ sudo checkinstall



4) ctags 설치
$ sudo apt-get install exuberant-ctags

실행 : projectroot$ ctags -R

사용법: http://danguria.tistory.com/207




5) 내 vimrc git repo에서 pull 해서 적용

vim backup 파일을 저장할 directory 생성

$ mkdir ~/.vimbackup




6) Vundle 설치

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

vimrc 설정(3 - 에서 완료)

설치 후 $ vim +PluginInstall +qall




7) YouCompleteMe 설치

의존성 도구 설치

$ sudo apt-get install build-essential python-dev python3-dev

YCM 컴파일 설치

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

프로젝트 root directory에 적절한 .ycm_extra_conf.py 설정파일 위치시키기(~/.vim/ycm_extra_conf_set 에 개인적으로 만들어놓은 파일 사용)

혹은 ~/.vim 에 .ycm_extra_conf.py 파일 생성 후 https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py 복붙후 vimrc에서 global 사용 설정(해당 부분 사용안함 주석처리 해제)

(http://neverapple88.tistory.com/26)




8) nerdtree 설치

vundle 로 설치(http://vi.stackexchange.com/questions/5335/how-install-nerdtree-with-vundle)

vimrc 설정(3 - 에서 완료)




9) cscope 설치

$ sudo apt-get install cscope

mkcscope.sh

#!/bin/sh

rm cscope.files cscope.out


find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files

cscope -i cscope.files


$ chmod 755 mkscope.sh

$ cp mkscope.sh projectroot

projectroot$ ./mkcscope.sh


vimrc 설정(3 - 에서 완료) 단, csprg 의 위치는 다를  수 있으므로 확인해야 함




10) Tag List 설치

vundle로 설치(taglist-plus)

vimrc 설정(3 - 에서 완료) 단, Tlist_Ctags_Cmd 의 위치는 다를 수 있으므로 확인해야 함




11) easytags 설치

vundle로 설치(https://github.com/xolox/vim-easytags installation 참고)

vimrc 설정(3 - 에서 완료) 단, easytags_cmd 의 위치는 다를 수 있으므로 확인해야 함




12) vim-airline 설치

vimrc 설정(3 - 에서 완료)

client에서 터미널로 접속해서 작업할 것이므로 font 설치 불필요


'C' 카테고리의 다른 글

간만에 C/C++를 본다면 기억해야 할 것  (0) 2016.04.17
Comments