0
点赞
收藏
分享

微信扫一扫

ninja: error: missing and no known rule to make itCmake thread

夏沐沐 2022-03-22 阅读 59

Deveco引入PaddleLite之后报错:

ninja: error: 'D:/Harmony/YoloHM/entry/PaddleLite/cxx/libs/libpaddle_light_api_shared.so', needed by 'D:/Harmony/YoloHM/entry/build/intermediates/cmake/debug/obj/arm64-v8a/libNative.so', missing and no known rule to make it
Cmake thread
org.gradle.api.GradleException: native build cmake execute failed
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at com.huawei.ohos.build.utils.ProcessUtils.processWait(ProcessUtils.groovy:127)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:90)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy)
    at com.huawei.ohos.build.utils.ProcessUtils$execute$1.callCurrent(Unknown Source)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:63)
    at com.huawei.ohos.build.utils.ProcessUtils$execute$0.callCurrent(Unknown Source)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:59)
    at com.huawei.ohos.build.utils.ProcessUtils$execute.call(Unknown Source)
    at com.huawei.ohos.build.dsl.CmakeThread.executeCmakeBuild(CmakeThread.groovy:106)
    at com.huawei.ohos.build.dsl.CmakeThread.run(CmakeThread.groovy:57)
Exception in thread "Thread-109" org.gradle.api.GradleException: native build cmake execute failed
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
    at com.huawei.ohos.build.utils.ProcessUtils.processWait(ProcessUtils.groovy:127)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:90)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy)
    at com.huawei.ohos.build.utils.ProcessUtils$execute$1.callCurrent(Unknown Source)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:63)
    at com.huawei.ohos.build.utils.ProcessUtils$execute$0.callCurrent(Unknown Source)
    at com.huawei.ohos.build.utils.ProcessUtils.execute(ProcessUtils.groovy:59)
    at com.huawei.ohos.build.utils.ProcessUtils$execute.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)
    at com.huawei.ohos.build.dsl.CmakeThread.executeCmakeBuild(CmakeThread.groovy:106)
    at com.huawei.ohos.build.dsl.CmakeThread.run(CmakeThread.groovy:57)

原因是CMakeLists.txt的ANDROID_ABI没有定义好,系统获取不了这个参数,所以这个值为空

set_target_properties(
  # Specifies the target library.
  paddle_light_api_shared
  # Specifies the parameter you want to define.
  PROPERTIES
    IMPORTED_LOCATION
    ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libpaddle_light_api_shared.so
    # Provides the path to the library you want to import.
)

对于鸿蒙来说我暂时还不知道如何set这个参数

安卓定义${ANDROID_ABI}是用android.toolchain.cmake来定义的,
鸿蒙的我暂时还不知道如何写?解决方法直接把${ANDROID_ABI}替换成arm64-v8a

举报

相关推荐

0 条评论