CMake 设置使用不正确的参数数调用的目标属性
CMake set target properties called with incorrect number of arguments
我正在尝试在我的项目中使用OpenCV库,但我在运行时收到此错误:
生成命令失败。执行进程时出错 D:\Sdk\cmake\3.6.4111459\bin\cmake.exe 带参数 {-HC:\Users\Mouad AITALI\AndroidStudioProjects\BGREMOVER\app -BC:\Users\Mouad AITALI\AndroidStudioProjects\BGREMOVER\app.cxx\cmake\debug\arm64-v8a -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-16 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\Mouad AITALI\AndroidStudioProjects\BGREMOVER\app\build\intermediates\cmake\debug\obj\arm64-v8a -DCMAKE_BUILD_TYPE=调试 -DANDROID_NDK=D:\Sdkdk\19.2.5345600 -DCMAKE_CXX_FLAGS=-std=c++11 -DCMAKE_TOOLCHAIN_FILE=D:\Sdkdk\19.2.5345600\build\cmake\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=D:\Sdk\cmake\3.6.4111459\bininja.exe -GAndroid Gradle - Ninja} -- 配置不完整,发生错误!参见 "C:/Users/Mouad AITALI/AndroidStudioProjects/BGREMOVER/app/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log"。
CMake Error at CMakeLists.txt:13 (set_target_properties(:
set_target_properties调用的参数数量不正确。
CMakeLists.txt
#declare folder path
set(pathToProject C:\Users\Mouad;AITALI\AndroidStudioProjects\BGREMOVER)
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
include_directories(${pathToOpenCv}/sdk/native/jni/include)
#library location
add_library(lib_opencv SHARED IMPORTED)
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${pathToProject}/app/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)
#define libraries
add_library(native-lib SHARED src/main/cpp/native-lib.cpp)
add_library(grabcut SHARED src/main/cpp/jni-grabcut-lib.cpp src/main/cpp/grabcutter_p.cpp src/main/cpp/grabcutter_p.h)
find_library(log-lib log)
#target libraries
target_link_libraries(native-lib ${log-lib} lib_opencv)
target_link_libraries(grabcut ${log-lib} lib_opencv)
如前所述,CMake 使用分号;
来定义列表。因此,如果路径包含分号,则必须将定义括起来,并使用变量的位置pathToProject
用双引号括起来:
set(pathToProject "C:\Users\Mouad;AITALI\AndroidStudioProjects\BGREMOVER")
...
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION "${pathToProject}/app/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so")
IMPORTED_LOCATION
属性仅采用一个值。因此,当您为该属性提供列表时,set_target_properties()
命令无法正确分析参数,从而产生错误。
- C++从函数指针数组调用函数
- 使用数组数组调用 C++ 函数
- 空指针(为缺少的输出数组调用的 create() 在 create,文件 /home/m/OpenCV/modules/
- 模板 使用数据数组调用函数时扩展参数包
- 从数组调用方法不会更改对象
- 为什么 ret 指令数大于调用指令数?
- 从基类数组调用派生函数
- "Color Game" - 从数组 C++ 调用随机
- 如何将结构数组调用以函数
- 如何使数组调用另一个类中的函数
- 使用数组调用函数
- 使用字符数组调用 scanf_s()
- 可变参数模板数组调用未定义的行为
- 使用带有对象的数组调用类中的方法,错误"non-class type",c++
- 从C++数组调用信息看似简单的问题
- 如何在 c++ 中从数组调用函数作为指针
- 使用二维数组调用返回结构
- 为什么不为对象数组调用析构函数
- 为另一个构造函数中的对象数组调用构造函数
- 如何为类 C++ 数组调用函数