web-dev-qa-db-ja.com

CMakeはCursesを見つけることができません

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!

どんな助けでも大歓迎です。

  • トム
15
waffleShirt

これは、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がインストールされます。

あなたの仲間、

12
rnordeen

これを修正する別の方法は、次の2行をFindCurses.cmake(上)に追加することです。

set(CURSES_LIBRARY "/opt/lib/libncurses.so")
set(CURSES_INCLUDE_PATH "/opt/include")
10
Martin Zeitler

CMakeにCURSESの検索を試行させるのではなく、一時的にCURSES_USE_NCURSESをTRUEに設定して、NCURSESの使用を強制します。

7
waffleShirt

対応する-devパッケージもインストールされていますか? Ubuntu(およびおそらくDebianから派生したもの)ではlibncurses5-devです。他のシステムは-develまたは同様のタグを使用する場合があります。

コンパイラーはライブラリー・ヘッダーを探していますが、それらは標準パッケージでは提供されていません。 (ヘッダーは、ソフトウェアのコンパイル時にのみ実行時に必要とされないため、ソフトウェアのコンパイルを行わないシステムの余分な不要なものを簡単に削除できます。)

2
sarnold

Openlase wikiは必要なパッケージのすべてを表示していませんでした。更新された手順については、githubのwikiページを確認してください。 cursesの場合、不足しているパッケージはlibncurses5-dev Sudo apt-get install libncurses5-dev

1
Jason Briggs

CMakeにCURSESの検索を試行させるのではなく、一時的にCURSES_NEED_NCURSESをTRUEに設定して、NCURSESの使用を強制します。

set(CURSES_NEED_NCURSES TRUE)

CURSES_USE_NCURSESはFindCurses.cmakeによって内部で使用されるため、設定しても役に立ちません。

0
JoeAndrieu