Android NDK使用CMake编译OBJECT库引发的错误(produces multiple outputs)

在使用CMake进行构建的时候,CMakeLists配置如下OBJECT库,并指定最小版本为3.14

cmake_minimum_required(VERSION 3.14)

# ogg库
add_library(aiengine_ogg OBJECT 
    third/ogg/bitwise.c
    third/ogg/framing.c
)

不指定构建的ABI,即编译4个系统平台,x86,x86_64,arm64-v8a,armeabi-v7a

指定CMake版本为3.18.1,即模块级Gradle内,android.externalNativeBuild.cmake配置

externalNativeBuild {
        cmake {
            path file('../../CMakeLists.txt')
            version "3.18.1"
        }
    }

NDK使用默认版本21.4.7075529

会发生如下错误

E:\Git\sdk_2.x\CMakeLists.txt : C/C++ debug|x86 : Target aiengine_ogg::@6890427a1f51a3e7e1df produces multiple outputs E:\Git\sdk_2.x\AndroidDebugProject\app\.cxx\cmake\debug\x86\CMakeFiles\aiengine_ogg.dir\third\ogg\bitwise.c.o, E:\Git\sdk_2.x\AndroidDebugProject\app\.cxx\cmake\debug\x86\CMakeFiles\aiengine_ogg.dir\third\ogg\framing.c.o

如果修改为只编译指定的1个ABI,则可以构建成功

尝试更换过NDK,Ninja版本,CMake版本更新为最新3.20也都无法解决这个问题

最后更换了CMake版本为3.14.0的版本,问题解决,尝试了3.14.7以下的版本都是可以的,3.15.0以上就会报这个错误

虽然问题解决了,但是具体发生该错误的原因还不清楚,如果有知道的还望告知,谢谢