「RELIONトラブルシューティング」の版間の差分

提供: Eospedia
移動: 案内検索
(対処)
(ERROR: TIFF support was not enabled during compilation)
行26: 行26:
 
  $ make install
 
  $ make install
  
 +
(普通は上記だけでlibtiffをリンクしたRELIONをビルドできます。ただ、minicondaやanacondaを使ってEMAN2をビルドした環境とかでは、以下みたいにminicondaにCMakeの検索パスを持ってかれる現象が起きるかもしれません。)
  
 
cmakeでこけた怒
 
cmakeでこけた怒

2019年5月15日 (水) 03:07時点における版

Motion Correction

ERROR: TIFF support was not enabled during compilation

症状

2019/5/14, v3.0.5, build from source in Ubuntu 16.04.6 LTS

RELIONチュートリアルでMotion correctionするとき、MoitonCor2のRELION実装使ったら表題のエラーが出た。

対処

# relionのルートディレクトリに移動 (cmakeとかsrcとかあるディレクトリ)

$ rm -r build/ install/

$ sudo apt install libtiff5-dev

$ mkdir build/ install/

$ cd build && cmake -DCMAKE_INSTALL_PREFIX=../install ..

$ make -j10

$ make install

(普通は上記だけでlibtiffをリンクしたRELIONをビルドできます。ただ、minicondaやanacondaを使ってEMAN2をビルドした環境とかでは、以下みたいにminicondaにCMakeの検索パスを持ってかれる現象が起きるかもしれません。)

cmakeでこけた怒

(出力の一部抜粋)

CMake Warning at src/apps/CMakeLists.txt:165 (add_executable):
 Cannot generate a safe runtime search path for target tiltpair_plot because
 files in some directories may conflict with libraries in implicit
 directories:

   runtime library [libtiff.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3f.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib

 Some of these libraries may not be found correctly.


$ which cmake
/home/kttn/miniconda2/bin/cmake

EMAN2インストールするときに入れたminiconda2のbin/に、condaで入れたcmakeが入ってて、それ使ってるのが問題か

cmakeを/usr/bin/cmakeに置き換えて再ビルド

$ /usr/bin/cmake -DCMAKE_INSTALL_PREFIX=../install ..

(出力の一部抜粋)

CMake Warning at src/apps/CMakeLists.txt:165 (add_executable):
 Cannot generate a safe runtime search path for target maingui because files
 in some directories may conflict with libraries in implicit directories:

   runtime library [libtiff.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3f.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib

 Some of these libraries may not be found correctly.

んぁー cmakeわからん


relion.gitのreadmeに" If you installed libtiff in a non-standard location, specify the location by -DTIFF_INCLUDE_DIR=/path/to/include -DTIFF_LIBRARY=/path/to/libtiff.so.5."なる記述があったので、これを使ってみる


$ cmake -DCMAKE_INSTALL_PREFIX=../install -DTIFF_INCLUDE_DIR=/usr/include/x86_64-linux-gnu -DTIFF_LIBRARY=/usr/lib/x86_64-linux-gnu/libtiff.so.5 ..

(出力の一部抜粋)

CMake Error at /home/kttn/softwares/relion/build/CMakeFiles/CMakeTmp/cmTC_3d3bbTargets.cmake:16 (add_library):
 Target "MPI::MPI_C" links to item " -Wl,-rpath,/home/kttn/miniconda2/lib
 -Wl,-rpath -Wl,/home/kttn/miniconda2/lib -Wl,--enable-new-dtags" which has
 leading or trailing whitespace.  This is now an error according to policy
 CMP0004.
Call Stack (most recent call first):
 /home/kttn/softwares/relion/build/CMakeFiles/CMakeTmp/CMakeLists.txt:12 (include)

libtiffは解消されたけど他のライブラリが相変わらずminicondaに持ってかれている

$ conda remove cmake
$ cmake -DCMAKE_INSTALL_PREFIX=../install ..

(一部抜粋)

CMake Warning at src/apps/CMakeLists.txt:165 (add_executable):
 Cannot generate a safe runtime search path for target tiltpair_plot because
 files in some directories may conflict with libraries in implicit
 directories:

   runtime library [libtiff.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3f.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib
   runtime library [libfftw3.so.3] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
     /home/kttn/miniconda2/lib

 Some of these libraries may not be found correctly.


minicondaの呪縛からどうやって逃れたらいいの?


  • 色々試す
    • miniconda2をPATHから削除してcmakeする
      • (結果)相変わらずminiconda2に持ってかれたまま


CMakeはインクルードとライブラリを検索するとき、どの設定ファイルまたは環境変数を呼んでどこを探しに行っているのか?