【问题标题】:CMake Parse error Function missing ending ")". Instead found unterminated string with text ")CMake Parse 错误函数缺少结尾“)”。而是找到带有文本“)的未终止字符串
【发布时间】:2017-09-10 05:49:28
【问题描述】:

首先我想说我知道以下问题

Parse error. Function missing ending ")" CMAKE

CMake's execute_process and arbitrary shell scripts

但我无法理解这些问题中提供的解决方案,因为我对 cmake 命令了解不多,而且我认为我的问题上下文不同。

我正在尝试编译https://github.com/openalpr/imageclipper 这个软件。 我按照自述文件中的说明进行操作,该文件说只执行以下两个命令

1.) cmake ./

2.) 制作

但是在发出第一个命令时我得到了这个错误 ->


C:\Users\vishal tewatia\Downloads\imageclipper-master>cmake ./ CMakeLists.txt:25 处的 CMake 错误: 解析错误。函数缺少结尾“)”。而是发现未终止 带文本的字符串")

ENDIF()

SET(SRC

src/imageclipper.cpp

)

ADD_EXECUTABLE(${PROJECT_NAME} ${SRC})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS}

C:/boost_1_65_1/stage/lib

)"。

-- 配置不完整,出现错误! 另请参阅“C:/Users/vishal tewatia/Downloads/imageclipper-master/CMakeFiles/CMakeOutput.log”。


下面是 CMakeLists.txt 文件

cmake_minimum_required (VERSION 2.6) 

project(imageclipper)
SET(PROJECT_VERSION "0.1")


SET(OpenCV_DIR "C:\opencv\build\install\x64\vc15\bin\")


# Opencv Package
FIND_PACKAGE( OpenCV REQUIRED )
IF (${OpenCV_VERSION} VERSION_LESS 2.3.0)
    MESSAGE(FATAL_ERROR "OpenCV version is not compatible : 
${OpenCV_VERSION}")
ENDIF()



SET(SRC
  src/imageclipper.cpp
)

ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME}  ${OpenCV_LIBS} 
    C:/boost_1_65_1/stage/lib
    )

我不明白为什么它说函数缺少 ")" ,因为在 CMakeLists.txt 文件中所有打开的括号都是关闭的。 或者如果错误是关于“C:/boost_1_65_1/stage/lib”这个地址格式不正确,我不知道该怎么办,请帮忙。

【问题讨论】:

  • 设置OpenCV_DIR时路径中的反斜杠可能有问题? CMake 字符串中的反斜杠需要像 C++ 字符串一样进行转义。
  • 很可能是这样。最好一直使用正斜杠。
  • 并在命令行上设置自定义路径,而不是在 cmake 代码中。否则,当我尝试在我在其他地方安装了 opencv 的机器上构建您的项目时,它将无法正常工作!

标签: c++ cmake


【解决方案1】:

好的,所以我找到了解决方案,在设置 OpenCV_DIR 时只需要 \\ 而不是 \

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多