【发布时间】: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 的机器上构建您的项目时,它将无法正常工作!