web-dev-qa-db-ja.com

CMakeエラー:SWIGが見つかりませんでした(欠落:SWIG_DIR)

テストしたかった Node.JSのPocketsphinx 。 Swigバージョン3.0.7以降をインストールする必要があると表示されます。

他のすべての依存関係を正しくインストールしたと思います。ターミナルでSwigコマンドを入力することもできますが、npm install pocketsphinxを実行するたびにこのエラーが発生し続けます。

CMake Error at /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find SWIG (missing: SWIG_DIR) (Required is at least version
  "3.0.7")
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindSWIG.cmake:75 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:4 (find_package)

brew install swigを試しました。 npm install swigを試しました。 npm install -g swigを試しました。 swigダウンロードページ に移動してインストール手順を実行しようとしましたが、何もしなかったためにエラーが発生しなくなりました。ちなみに私はこれをMacbookで試しています。

私はここで何をしているのか本当にわかりません。 Pocketsphinxをテストしたかったのですが、Swigを4つの異なる場所にインストールしましたが、CMakeはそれらのいずれも認識できないようです。

どんな助けでも素晴らしいでしょう!

5
MysteryPancake

私は自分でそれを解決しようとすることになった。問題は、npm install swigと入力したときでした。

このバージョンのSwigをセットアップするのを忘れ、コンパイラーがそれを使用していました。

Sudo npm uninstall swigと入力すると、完全に機能しました。とてもバカだ。

0
MysteryPancake

FindSwig.cmakeのソースコード を確認してください。

残念ながら、findスクリプトが期待どおりに機能せず、その理由がすぐにわからない場合は、通常、そのソースを掘り下げる必要があります。あなたの場合、CMakeはSWIG実行可能ファイルを見つけて実行できたが、swigディレクトリを取得できなかったようです。

手動でswig -swiglibを実行してみて、印刷されたディレクトリに実際にswig.swgファイルが含まれていることを確認してください。また、CMakeによって検出されたswig実行可能ファイルが実際に正しいものであることを確認してください(これは、SWIG_EXECUTABLEccmakecursesインターフェイスのいずれかでcmake-guiの値を調べることで確認できます。またはCMakeCache.txtファイルに直接)。

CMakeは、実行可能パスが見つかるとnot更新しないことに注意してください!したがって、実行可能ファイルの場所に影響を与えるシステムに変更を加えた場合は、キャッシュをクリアし(たとえば、CMakeCache.txtを削除して)、変更を有効にするためにCMakeを再実行する必要があります。

4
ComicSansMS