3

opencvをビルドしようとしているcmake-guiを使用していますが、次のエラーが発生します:

CMake Error at cmake/OpenCVGenConfig.cmake:134 (math):
  math cannot parse the expression: "8 * ": syntax error, unexpected $end,
  expecting exp_OPENPARENT or exp_NUMBER (4)
Call Stack (most recent call first):
  CMakeLists.txt:649 (include)

cmakeを使ったのはこれが初めてなので、どこを向いたらよいかわかりません。私はOpenCVGenConfig.cmakeファイルを見てきましたが、その構文についてはわかりません。私はすべてを吹き飛ばし、opencv tarballを再度ダウンロードしましたが、それでも同じエラーが発生します。したがって、OpenCVGenConfig.cmakeファイルではタイプミス/エラーではなく、「math」コマンドの処理であるように見えます。Cmakeのドキュメントで「数学」コマンドに関連するものが見つからないようです。

何か案は?

-アンドレス

4

1 に答える 1

9

問題の行は

  math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")

問題${CMAKE_SIZEOF_VOID_P}は、ポインタのサイズをバイト単位で示す必要があるときに設定されていないことであるように見えます。projectこれは、最上位のCMakeLists.txtの先頭近くにあるコマンドの呼び出し中に設定される必要があります。

なぜ設定されていないのかわかりませんが、CMakeのバグかもしれません。まだ使用していない場合は、最新バージョンのCMake (現在は2.8.8)を使用してみてください。また、コマンドラインからCMakeを実行すると、違いが生じる可能性があります(そうではないはずですが、わかりません)。

これで問題が解決しない場合は、 CMakeメーリングリストでアドバイスを求めるのが最善の策です。

絶対的な最後の手段として、次のようCMAKE_SIZEOF_VOID_Pに追加することで、マシンに適切な値を設定できます。

  if(NOT CMAKE_SIZEOF_VOID_P)
    set(CMAKE_SIZEOF_VOID_P 4)  # replace 4 with 8 for 64-bit machine
  endif()

math呼び出しが行われる行134の直前のcmake/OpenCVGenConfig.cmakeに。これは恐ろしいハックであり、私は確かにそれをお勧めしませんが、メーリングリストで適切な答えを探しながらOpenCVを構築することができます。


mathを実行すると、コマンド に関する情報を取得できます

cmake --help-command math

CMAKE_SIZEOF_VOID_P実行して

cmake --help-variable CMAKE_SIZEOF_VOID_P
于 2012-05-12T01:40:05.957 に答える