【发布时间】:2017-07-31 14:32:00
【问题描述】:
我正在尝试在 Android Studio 中将 CMake 脚本作为具有 OpenCV 依赖项的 externalNativeBuildTool 执行。
我知道我可以在脚本中静态定义 OpenCV 并且我不想在 android studio 中使用 OpenCV 管理器或插件。我只想传递 Opencv_dir 参数以避免将所有头文件和库复制到项目中。
所以,总而言之,我有这个错误:
Could not find a package configuration file provided by "OpenCV" with any of the following names:
OpenCVConfig.cmake
opencv-config.cmake
我正在寻找类似的解决方案:
https://developer.android.com/ndk/guides/cmake.html#build-command。
但是这些参数都不满足,我试着把Opencv_dir这样放:
externalNativeBuild {
cmake {
cppFlags "-std=c++11 -fno-rtti -fexceptions "
arguments "-DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=18
-DOpenCV_DIR="+getOpenCVDir().toString()
}
}
def getOpenCVDir() {
Properties properties = new Properties()
properties.load(new File(rootDir.absolutePath + "/local.properties").newDataInputStream())
def externalModuleDir = properties.getProperty('opencv.dir', null)
if (externalModuleDir == null) {
throw new GradleException(
"OpenCV location not found. Define location with opencv.dir in the local.properties file!")
}
return externalModuleDir
}
opencvdir 是在本地属性上定义的
opencv.dir={my_sdk_path}/OpenCV-android-sdk/sdk/native/jni
那么有没有办法通过gradle将自定义参数传递给cmake?
提前致谢。
【问题讨论】:
标签: android opencv android-studio android-ndk cmake