LoginSignup
0
0

More than 3 years have passed since last update.

Emacsでirony-install-serverするのに必要な環境

Last updated at Posted at 2019-04-09

Emacsで補完機能を使いたくて、色々やってたら、M-x irony-install-serverで失敗してたので、回避策をメモ

以下の先達の方の記事にも書いてある通り、llvm, clang, libclang-devのインストールが必要。
自分はlibeling-devをインストールしてなく、libclangや、clang/Index.hが見つからないと怒られてました。

C++11時代のEmacs C++コーディング環境

sudo apt update
sudo apt install llvm
sudo apt install clang
sudo apt install libclang-dev
sudo apt install make

Macの場合さらに以下の対策を実施

私のMacでは、Emacs上でM-x irony-install-serverすると以下のエラーが発生。
どうやらlibiconv.2.dylibに_libiconv_openシンボルが見つからないと怒られている様子。

Run Build Command(s):/opt/local/bin/gmake cmTC_ac6f9/fast                                   
/opt/local/bin/gmake -f CMakeFiles/cmTC_ac6f9.dir/build.make CMakeFiles/cmTC_ac6f9.dir/build
dyld: lazy symbol binding failed: Symbol not found: _libiconv_open
  Referenced from: /opt/local/lib/libintl.8.dylib
  Expected in: /usr/lib/libiconv.2.dylib

dyld: Symbol not found: _libiconv_open
  Referenced from: /opt/local/lib/libintl.8.dylib
  Expected in: /usr/lib/libiconv.2.dylib

gmake: *** [cmTC_ac6f9/fast] Abort trap: 6
Run Build Command(s):/opt/local/bin/gmake cmTC_895cb/fast                                   
/opt/local/bin/gmake -f CMakeFiles/cmTC_895cb.dir/build.make CMakeFiles/cmTC_895cb.dir/build
dyld: lazy symbol binding failed: Symbol not found: _libiconv_open
  Referenced from: /opt/local/lib/libintl.8.dylib
  Expected in: /usr/lib/libiconv.2.dylib

dyld: Symbol not found: _libiconv_open                                         
  Referenced from: /opt/local/lib/libintl.8.dylib                        
  Expected in: /usr/lib/libiconv.2.dylib

gmake: *** [cmTC_895cb/fast] Abort trap: 6                                                  

nmで確認してみると_iconv_openしか見当たらない

nm /usr/lib/libiconv.2.dylib
.
.
00000000000032fc T _iconv_close
0000000000001fdb T _iconv_open
0000000000003309 T _iconvctl
.
.

なので、gnu orgからライブラリのソースをダウンロードし、make
インストール先の--prefixは必要に応じて変更
私は、一旦テンポラリフォルダにインストールして、あとで、/usr/local/libにコピーした
以下は、ソースを$HOME/libiconv-1.15/展開して実施した場合

$ cd $HOME/libiconv-1.15/
$ ./configure --prefix=$HOME/libiconv-1.15/build
$ make
$ make install
$ cd $HOME/libconv-1.15/build
$ cp libiconv.dylib libiconv.2.dylib /usr/local/lib

再度nmで確認
きちんと_libconv_openが存在していることを確認

nm /usr/local/lib/libiconv.2.dylib
.
.
0000000000002310 T _libiconv_close
0000000000000da0 T _libiconv_open
0000000000002320 T _libiconv_open_into
.
.

無事irony-install-serverコマンドが成功した

.
.
.
-- Build files have been written to: /var/folders/nq/qgjv9z
Scanning dependencies of target irony-server
[ 12%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 25%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 37%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 50%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 62%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 75%] Building CXX object src/CMakeFiles/irony-server.dir/
[ 87%] Building CXX object src/CMakeFiles/irony-server.dir/
[100%] Linking CXX executable ../bin/irony-server
[100%] Built target irony-server
Install the project...
-- Install configuration: "Release"
-- Installing: /Users/MyHome/.emacs.d/irony/bin/irony-server

Compilation finished at Thu Apr 11 00:39:07

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0