2013-03-08 18 views
5

は、私はすでに自分のコンピュータ上FFTW3ライブラリをインストールしていると、次のファイルは、/ usr/libに見つけることができます。CMakeのFIND_LIBRARY:指定されたライブラリのエラーへのリンク

libfftw3f.so.3   libfftw3l_threads.so.3 
libfftw3f.so.3.3.0  libfftw3l_threads.so.3.3.0 
libfftw3f_threads.so.3  libfftw3.so.3 
libfftw3f_threads.so.3.3.0 libfftw3.so.3.3.0 
libfftw3l.so.3   libfftw3_threads.so.3 
libfftw3l.so.3.3.0  libfftw3_threads.so.3.3.0 

私がする必要がある別のパッケージをインストールしたいですこれらのライブラリをリンクしますが、試してみると FIND_LIBRARY(FFTW3_LIBRARIES fftw3)FIND_LIBRARY(FFTW3_LIBRARIES fftw3f)、 のライブラリを見つけることができません。

どうすればこの問題を解決できますか?ありがとう! CMakeLists.txtで

コード:

FIND_PATH(FFTW3_INCLUDE_DIR fftw3.h) 
IF(FFLD_HOGPYRAMID_DOUBLE) 
    FIND_LIBRARY(FFTW3_LIBRARIES libfftw3.so.3) 
ELSE() 
    FIND_LIBRARY(FFTW3_LIBRARIES libfftw3f.so.3) 
ENDIF() 
#IF(NOT FFTW3_INCLUDE_DIR OR NOT FFTW3_LIBRARIES) 
IF(NOT FFTW3_INCLUDE_DIR OR NOT FFTW3_LIBRARIES) 
    MESSAGE(FATAL_ERROR "Could not find fftw3.") 
ENDIF() 

エラーメッセージ:

CMake Error at CMakeLists.txt:52 (MESSAGE): 
    Could not find fftw3. 

答えて

0

最後には、find_packageスクリプトを記述する方法については、このサイトを見てください。

次に、手動で必要なライブラリを選択できます。

1

私は通常/usr/lib/libfftw.so -> libfftw.so.3のようなシンボリックリンクを見ることを期待します。それらが適切に配置されていれば、find_libraryコールはOKになります。

あなたはシンボリックリンクを追加したくない場合は、にあなたの呼び出しを変更することができます:あなたは動的ライブラリがインストールされているが、あなたは「開発」パッケージがインストールされていない

find_library(FFTW3_LIBRARIES libfftw3.so.3 /usr/lib) 
find_library(FFTW3F_LIBRARIES libfftw3f.so.3 /usr/lib) 
+0

はい、これらのライブラリです/ usr/libに/しかしfind_library(FFTW3_LIBRARIES libfftw3.so.3) find_library(FFTW3F_LIBRARIES libfftw3f.so.3)は動作しません:( – ethanjyx

+0

を使用すると、エラーメッセージを表示するようにあなたの質問を編集でした – Fraser

+0

編集ありがとう! – ethanjyx

3

?あなたはFFTW3-develの(またはFFTW3-devの)パッケージをインストールする必要があるかもしれません

libfftw3.so 

:あなたは、おそらくのようなファイルやシンボリックリンクという名前の何かが必要。

また、 "LIB" 接頭辞と.so.3サフィックスを削除してみてください:

FIND_LIBRARY(FFTW3_LIBRARIES NAMES fftw3 libfftw3) 

問題が解決しない場合は、PATHS引数を追加してみてください:

FIND_LIBRARY(FFTW3_LIBRARIES NAMES fftw3 libfftw3 PATHS /usr/lib <other paths>) 

ていることを確認しますCMAKE_FIND_ROOT_PATH変数が正しく設定されています(クロスコンパイルしていない可能性が高いため、cmakeはライブラリを見つけるために適切な場所を使用している可能性があります)。

find_library関数の詳細については、cmakeのmanページを参照してください。 GUI-cmakeのhttp://www.cmake.org/cmake/help/runningcmake.htmlを試してみてください http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries

+0

あなたの答えの最後の行にあるそのリンクは役に立ちました - ありがとう! (私は何度もそれをやってきましたが、簡単な答えを探す上で気持ちが行きました。最後に私は本当にそれを読むことに決めました、そして、私は失望しませんでした。) – jvriesem

関連する問題