C++ Gradle CPPCcompile:如何迭代工具链(属性)

C++ Gradle CPPCcompile:如何迭代工具链(属性),c++,gradle,gradle-plugin,gradle-kotlin-dsl,C++,Gradle,Gradle Plugin,Gradle Kotlin Dsl,我目前正在使用gradle进行一些实验,以构建c/c++项目。 我想使用新的cpp库插件构建一个c库(不使用c/cpp,因为文档中说明它已被弃用)。我需要修改编译器ARG来告诉它的C代码而不是C++代码< /P> 例1: tasks.withType(CppCompile::class.java).configureEach { compilerArgs.addAll(toolChain.map { tc -> when (tc) { is

我目前正在使用gradle进行一些实验,以构建c/c++项目。 我想使用新的cpp库插件构建一个c库(不使用c/cpp,因为文档中说明它已被弃用)。我需要修改编译器ARG来告诉它的C代码而不是C++代码< /P> 例1:

tasks.withType(CppCompile::class.java).configureEach {
    compilerArgs.addAll(toolChain.map { tc ->
        when (tc) {
            is Gcc, is Clang -> listOf("-x", "c")
            is VisualCpp -> listOf("/TC")
            else -> listOf()
        }
    })
}
这个例子有效

例2:

tasks.withType(CppCompile::class.java).configureEach {
    toolChain.map { tc ->
        when (tc) {
            is Gcc, is Clang -> compilerArgs.addAll(listOf("-x", "c"))
            is VisualCpp -> compilerArgs.addAll(listOf("/TC"))
        }
    }    
}
第二个示例可以工作(它的编译),但它不向compilerArgs添加标志

在我看来,这是一样的,但写的方式不同。有人能解释一下这里的区别吗