我正在使用cmake-gui尝试构建opencv但是得到了这个错误:
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文档中找到与“math”命令相关的任何内容。
有什么想法吗?
-Andres
答案 0 :(得分:9)
看起来有问题的行是
math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
问题似乎是${CMAKE_SIZEOF_VOID_P}
未设置
以字节为单位指示指针的大小。它应该在顶级CMakeLists.txt开头附近调用project
命令时设置。
我不确定为什么它没有被设置,它甚至可能是CMake中的一个错误。如果您还没有,可以尝试使用latest version of CMake(目前为2.8.8)。此外,从命令行运行CMake可能会有所不同(它不应该,但你永远不知道)。
如果这没有帮助,最好的办法是在CMake mailing list上征求意见。
作为绝对的最后手段,您可以通过添加
在您的计算机上为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()
到cmake / OpenCVGenConfig.cmake就在第134行进行math
调用之前。这是一个可怕的黑客,我当然不推荐它,但它可以让你建立OpenCV而
在邮件列表上寻找合适的答案。
您可以通过运行
math
命令的信息
cmake --help-command math
并在CMAKE_SIZEOF_VOID_P
上运行
cmake --help-variable CMAKE_SIZEOF_VOID_P