C++ Gradle CPPCcompile:如何迭代工具链(属性)
我目前正在使用gradle进行一些实验,以构建c/c++项目。 我想使用新的cpp库插件构建一个c库(不使用c/cpp,因为文档中说明它已被弃用)。我需要修改编译器ARG来告诉它的C代码而不是C++代码< /P> 例1: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
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添加标志
在我看来,这是一样的,但写的方式不同。有人能解释一下这里的区别吗