【发布时间】:2015-11-02 04:13:29
【问题描述】:
我是 makefile 新手
有很多选择可供探索。我刚刚尝试了简单的 makefile,涉及在同一位置编译 .c 文件及其对应的 .h 文件,但我遇到了编译大型项目只是为了观察其某种输出的问题。
结构是这样的:
对于项目 1:
/maindirectory/project1/include/.h files
/maindirectory/project1/source/.c files
/maindirectory/project1/sharedlibrary/.so files
对于项目 2:
/maindirectory/project2/include/.h files
/maindirectory/project2/source/.c files
/maindirectory/project2/sharedlibrary/ .so files
现在有一个“测试”.c 文件以某种方式测试这些项目中声明的某些代码的功能。
现在我知道这个测试文件应该与 1 和 2 的整个项目目录一起位于 /maindirectory/test.c 中,并创建一个 makefile 来构建所有必要的依赖项。
test.c 文件 #includes 项目 1 和项目 2 中的一些源 .c 文件,同时它还引用了项目 2 中的 .h 文件。我还注意到它抛出了一些“对 @987654332 的未定义引用@" 并且这个函数名在.h文件上没有实现,所以我假设它的实现属于一个共享库文件。
我需要帮助/指导/说明如何通过 makefile 将所有这些组合在一起,而无需为了了解整个结构而探索具有数千行代码的大量文件?
【问题讨论】:
-
包含 c 文件对我来说没有意义。你能解释一下为什么要包含一个 c 文件吗?
-
@nitzanms:是的,包含
.c文件是不常见的,它是否有意义(或没有意义)是另一回事,我想说,这取决于具体的需求。跨度> -
这就是我问这个的原因。
标签: c gcc makefile dependencies gnu-make