Gradle C插件:如何解决多个模块之间的引用

Gradle C插件:如何解决多个模块之间的引用,c,gradle,C,Gradle,我有一个c语言程序,其结构如下: src/main/c/main.c src/main/headers/main.h src/module_1/c/module_1.h src/module_1/headers/module_1.h ... src/modulen/c/module_n.c src/module/headers/module_n.h 在gradle脚本中,我定义了: components { module_1(NativeLibrarySpec) ... mo

我有一个c语言程序,其结构如下:

src/main/c/main.c
src/main/headers/main.h
src/module_1/c/module_1.h
src/module_1/headers/module_1.h
...
src/modulen/c/module_n.c
src/module/headers/module_n.h
在gradle脚本中,我定义了:

components {
   module_1(NativeLibrarySpec)
   ...
   module_n(NativeLibrarySpec)
   main(NativeExecutableSpec){
      sources{
        c.lib library: "module_1", linkage: "static"
        ...
        c.lib library: "module_n", linkage: "static"
   }
使用此结构的原因是为了方便分别为每个模块创建单元测试

问题在于将模块中的.h文件包含在主模块或其他模块中(它们之间存在一些依赖关系)。我还没有找到一种方法使一个模块的头对其他模块可用。实际上,我希望将它们全部“全局”添加到项目中(即,自动添加到任何模块的源代码集中)


提前谢谢

我不认识格雷德尔,但可能会给你一些一般性的建议

我还没有找到一种方法使一个模块的头对其他模块可用

您可以为项目的所有
.h
文件创建一个中心目录(存储库),例如
src/include
。每个模块的头文件都可以放在那里(在当前基线的版本中)

实际上,我希望将它们全部“全局”添加到项目中(即,自动添加到任何模块的源代码集中)

上面的存储库可以支持这一点。但是,在源文件中包含头是一项手动任务。不要将所有头文件都包含到源文件中也是明智的;它可能只需要几个