3

使用 gradle 6.5,我能够构建一个 cmake 项目,该项目的目标依赖于对象库,例如

add_library(mylib 
            SHARED
            code1.cc
            code2.cc
            $<TARGET_OBJECTS:objlib
           )

使用类似的东西声明对象库的位置

 add_library(objlib
             OBJECT
             src1.cc
             src2.cc
            )

如此有效地src1.osrc2.omylib. 我无法真正改变这一点(例如,将这些源文件直接放在add_libraryfor 中objlib)。

使用 gradle 6.7.1,gradle 抱怨目标objlib有多个输出,即src1.osrc2.o

CMakeLists.txt : C/C++ release|armeabi-v7a : 
   Target renderer::@bfc844598bd03e848b3c produces multiple outputs [...]/src1.o, [...]/src2.o 

(为简洁而编辑的路径)。

我试图通过在我的以下内容中明确指定我只希望 android 担心mylib目标build.gradle

externalNativeBuild {
     cmake {
          targets "mylib"
     }
}

正如Gradle 中所建议的,无法使用 OBJECT 库构建 CMake 项目,因为它需要一个输出文件,但这不起作用。

4

0 回答 0