1

CMake を使用してビルドする 3dtk に取り組んでいます。ここで CMakeLists.txt を見つけることができます: https://sourceforge.net/p/slam6d/code/HEAD/tree/trunk/CMakeLists.txt

いくつかの場所でadd_subdirectoryディレクティブを使用し、2 番目の引数 ( binary_dir) を提供しません。

ccmakeLinux で out-of-tree を呼び出す場合、またはcmake-guiWindows で使用する場合、どちらの場合もプロジェクトは正常に構成されているため、これは問題ではないようです。

しかし、cmakeWindows のコマンド プロンプトでプレーンな状態で実行すると、次のようなエラーがいくつか発生します。

CMake Error at Z:/CMakeLists.txt:471 (add_subdirectory):
  add_subdirectory not given a binary directory but the given source
  directory "Z:/src/slam6d" is not a subdirectory of "Z:/". When specifying
  an out-of-tree source a binary directory must be explicitly specified.

cmakeコマンドのオプションが欠落しているだけだと思いますが、どれですか?

ツリー外ビルドを作成するためにforcmake-guiとは異なるパスを指定する Windows の場合と同様に、このようなソースのサブディレクトリで実行する Linux の場合と同様に、Windows で a 内から実行しています私のソースのサブディレクトリ。Where to build the binarieswhere is the source codeccmakeccmakeccmake ..cmake

cmake-guiでは、手動操作が必要な場所とccmakeそうでcmakeないものは何ですか?

編集:解決策を見つけた後、問題は私のソースディレクトリが1つのサブディレクトリではなく直接Windowsドライブ文字であったことが判明しました。

4

2 に答える 2

2

これは cmake のバグであることが判明しました。デビッド・コールの引用:

ソースをサブディレクトリに置きます。CMake は、Windows のドライブ文字のルートでは機能しません。CMakeLists.txt は、ルート ドライブ文字パスの下の少なくとも 1 つのサブディレクトリに存在する必要があります。

この問題に関する未解決のバグレポートもいくつかあります。

于 2015-08-07T17:38:29.480 に答える