web-dev-qa-db-ja.com

「ターゲットを「インストール」するルールはありません」...しかし、Makefileは存在します

C++ライブラリのインストールで問題が発生しています。 CMake コマンドは成功し、Makefileを生成しますが、警告が表示されます。

CMake Warning (dev) at CMakeLists.txt:27 (LINK_DIRECTORIES):
This command specifies the relative path

../usr/local/lib

as a link directory.

Policy CMP0015 is not set: link_directories() treats paths relative to the
source dir.  Run "cmake --help-policy CMP0015" for policy details.  Use the
cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMakeLists.txtの27行目は

Boost_LIBRARY_DIR_DEBUG:PATH=/usr/local/lib

この警告が問題を引き起こす理由がわかりません。しかし、make installを実行すると、エラーが発生します。

make: *** No rule to make target `install'.  Stop.

何か案は?

7
Sean

メイクファイル全体を提供してもらえますか?しかし、今私は言うことができます-「インストール」ターゲットが既に存在することを確認する必要があります。そのため、Makefileに

install: (anything there)

ライン。そうでない場合、そのようなターゲットは存在しないため、makeには正しい権限があります。おそらく「make」コマンドを使用してコンパイルし、そのまま使用するか、手動でインストールする必要があります。

インストールはmakeの標準ではありません。単に存在する可能性のある一般的なターゲットですが、必要ではありません。

9

同じエラーメッセージが表示されていましたが、コマンドmake installを実行したときに正しいディレクトリにいないことが問題でした。メイクファイルがあるディレクトリに移動すると、機能しました。

したがって、適切なディレクトリにいない可能性があります。

3
Jamie

私も同じエラーに遭遇しました。修正方法は次のとおりです。Cmake-GUIを使用している場合:

  1. Cmakeでロードされたライブラリのキャッシュを消去します。
  2. ライブラリを構成します。
  3. Unixファイルを生成します。

3番目のステップを逃した場合:

***ターゲットを「インストール」するルールはありません。やめる。

エラーが発生します。

0
FutureJJ