如何在Gradle中包括C编译的标头?

缪勒

我是Gradle的新手。我正在尝试编译一组源文件,这些源文件包含分布在项目目录中的标头。我的源目录结构不符合Gradle约定。如何在build.gradle中添加编译所需的头文件位置?附件是我的build.gradle文件。

// build.gradle

apply plugin: 'c'

model {
    components {
        my_project (NativeExecutableSpec){
            sources {
                c {
                    source {
                        srcDir "my_proj_src/a/a1.1"
                        include "**/*.c"
                    }
                    exportedHeaders {
                        srcDir "my_proj_src/a/a1.1", "fsw/b/b1.2"
                    }
                }
            }
        }
    }
}

这是行不通的。另外,是否有可能使用Gradle进行部分链接?

编辑:另外,我还想知道如何在源层次结构中递归地进行Gradle搜索。

疯狂的java黑客

ExportedHeaders`用于从组件本身导出标题,而不用于添加标题。所以这行不通。

您将需要创建一个库并将其添加为,api linkage以便将这些标头添加到针对您的组件进行编译的标头中:

model {
    repositories {
        libs(PrebuiltLibraries) {
            ffmpegHeaders {
                headers.srcDirs "$ffmpegDir/include"
            }
        }
    }

    components {
        libUsingHeaders(NativeLibrarySpec) {
            sources {
                c {
                    lib library: 'ffmpegHeaders', linkage: 'api'
                }
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章