【发布时间】:2015-10-17 08:49:18
【问题描述】:
我有 CMake 3.0 和我自己的 C++ iOS 项目,它们使用 OpenCV 作为依赖项。该项目生成一组由应用程序项目加载的库。
在我的 CMake 中,我尝试查找 OpenCV 依赖项,它会在 windows 和 linux 中自动查找,但在 Android 和 iOS 中我必须设置正确的包。对于 Android,使用以下代码设置 ${OpenCV_dir}/sdk/native/jni 工作属性:
SET(OpenCV_DIR NOT_FOUND CACHE PATH "Path to use OpenCV")
IF(OpenCV_DIR STREQUAL NOT_FOUND)
FIND_PACKAGE( OpenCV PATHS ${OpenCV_DIR})
MESSAGE(FATAL_ERROR "--***-- Warning: Install and configure path to prebuilt OpenCVConfig.cmake")
ENDIF()
在 iOS 中,这不起作用。我通常在没有找到 OpenCV 的情况下创建项目 Xcode 项目,然后我拖放框架并使用自定义路径手动配置变量框架搜索路径,在
/Users/Piperoman/Libraries/opencv2.4.9IOS
但使用 CMake 代码找不到它。
定位框架有什么问题?
【问题讨论】:
-
您是否尝试将
/Users/Piperoman/Libraries/添加到CMAKE_PREFIX_PATH,这是由FIND_XXX()使用的? -
First FIND_XXX() 我收到错误:将“OpenCV”的安装前缀添加到 CMAKE_PREFIX_PATH 或将“OpenCV_DIR”设置为包含上述文件之一的目录。如果“OpenCV”提供单独的开发包或SDK,请确保已安装。尝试添加 SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /Users/Piperoman/Libraries/) 什么都不做,错误是一样的
-
第一,CMAKE_PREFIX_PATH默认为空,而且是单路径不是列表,所以直接设置:
SET(CMAKE_PREFIX_PATH /Users/Piperoman/Libraries/)第二,我觉得很有可能你应该使用@987654328 @ 代表CMAKE_PREFIX_PATH。如 cmake 文档中所述,cmake 在CMAKE_PREFIX_PATH下看起来像include/和lib/之类的fir 目录 -
SET(CMAKE_PREFIX_PATH/Users/Piperoman/Libraries/opencv2.4.9IOS/) 不起作用。设置(OpenCVDID /Users/Piperoman/Libraries/opencv2.4.9IOS)两者都没有。在里面我只有 opencv2.framework 并且 CMake 似乎没有检测到。使用 Android 本机,我将 Opencv.Cmake 目录放入并完美运行。
标签: c++ ios xcode opencv cmake