www.marcansoft.com からopenlaseライブラリをコンパイルしようとしていますが、CMakeで問題が発生しています。 CMakeは、Cursesが見つからないことを示すエラーを返します。何度も調べた後も、問題が何であるかについて困惑しています。さまざまなncursesパッケージがインストールされていることを確認しましたが、それでもエラーが解決しません。私はCMakeにあまり詳しくありませんが、この問題の前に発生した他の依存関係の問題を解決できました。以下はターミナルの出力です。
tom@SILVER:~/dev/openlase$ cmake ./
-- Found JACK
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:70 (MESSAGE):
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindCurses.cmake:159 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
examples/27c3_slides/CMakeLists.txt:3 (find_package)
-- Configuring incomplete, errors occurred!
どんな助けでも大歓迎です。
これは、Ubuntu 12.04での私の問題を修正したものですx86_64(64ビット)(ありがとうsyslogic)
なんらかの理由で(多分午前1時ですか?)CURSES_USE_NCURSES TRUEを設定しても機能しないようです。だから私はハックの仕事に行きました。
インストールされていることを確認:
$ Sudo apt-get install libncurses5-dev
あなたは効果に何かを見るでしょう:libncurses5-dev is already the newest version.
ライブラリを見つけてインクルードしてください。
$ locate libncurses.so
場所、私のメモ:/usr/lib/x86_64-linux-gnu/libncurses.so
$ locate curses.h
私の場所をもう一度メモしてください:/usr/include
で:<cmake source dir>/Modules/FindCurses.cmake
上部、コメントの直後に追加
set( CMAKE_INCLUDE_PATH "/usr/include")
set( CMAKE_LIBRARY_PATH "/usr/lib/x86_64-linux-gnu/libncurses.so")
その後、リンスしてビルドプロセスを繰り返します
./bootstrap
make
Sudo make install
ccmakeがインストールされます。
あなたの仲間、
これを修正する別の方法は、次の2行をFindCurses.cmake(上)に追加することです。
set(CURSES_LIBRARY "/opt/lib/libncurses.so")
set(CURSES_INCLUDE_PATH "/opt/include")
CMakeにCURSESの検索を試行させるのではなく、一時的にCURSES_USE_NCURSESをTRUEに設定して、NCURSESの使用を強制します。
対応する-dev
パッケージもインストールされていますか? Ubuntu(およびおそらくDebianから派生したもの)ではlibncurses5-dev
です。他のシステムは-devel
または同様のタグを使用する場合があります。
コンパイラーはライブラリー・ヘッダーを探していますが、それらは標準パッケージでは提供されていません。 (ヘッダーは、ソフトウェアのコンパイル時にのみ実行時に必要とされないため、ソフトウェアのコンパイルを行わないシステムの余分な不要なものを簡単に削除できます。)
Openlase wikiは必要なパッケージのすべてを表示していませんでした。更新された手順については、githubのwikiページを確認してください。 cursesの場合、不足しているパッケージはlibncurses5-dev Sudo apt-get install libncurses5-dev
CMakeにCURSESの検索を試行させるのではなく、一時的にCURSES_NEED_NCURSESをTRUEに設定して、NCURSESの使用を強制します。
set(CURSES_NEED_NCURSES TRUE)
CURSES_USE_NCURSESはFindCurses.cmakeによって内部で使用されるため、設定しても役に立ちません。