我有一个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文件(它们之间存在一些依赖关系)。我还没有找到一种方法来使模块的标头可用于其他模块。我实际上想让它们全部“全局”到项目中(也就是说,自动添加到任何模块的源集中)。
提前致谢
答案 0 :(得分:0)
我不知道gradle,但可能会给你一些一般的建议。
我还没有办法让其他模块可以使用模块的标题。
您可以为项目的所有.h
个文件创建一个中央目录(存储库),例如src/include
。每个模块的头文件都可以放在那里(在curent基线的版本中)。
我真的想把它们全部打造成全球性的#34;到项目(即,自动添加到任何模块的源集)。
以上存储库可以支持这一点。但是,在源文件中包含标题是手动任务。明智的做法是不将所有标题都包含在源文件中;它可能只需要一些。