用C构建模块化库

时间:2018-03-20 18:22:53

标签: c modularization

我已经在C中构建了一个库,但此时它很庞大,并且有许多不同的功能,例如:文件操作,数学函数等。

我想要做的是将这个库拆分为所有不同的建议,但如果用户想要使用all,可以立即调用它(如果可能,则为idk)。

我的图书馆名为feg_tools。所以现在使用它我做:

#include "feg_tools.h"

我想要一些我只需要的东西:

#include "feg_tools/mathematics_functions.h"
#include "feg_tools/file_manipulation.h"

或者如果我需要一切:

#include "feg_tools"

我也不知道如何像那样构建Makefile。

1 个答案:

答案 0 :(得分:0)

你需要的是创建一个名为 feg_tools 的文件夹,然后把你所有的库.h(mathics_functions.h,file_manipulation.h,......)放在那里,然后就像你在问题中所说的那样使用它们。

要包含孔库,您需要一个包含库的所有#include指令的标题,可以是

feg_tools.h

#include "feg_tools/mathematics_functions.h"
#include "feg_tools/file_manipulation.h"
...

这里的feg_tools.h位于 feg_tools 文件夹之外。

我不知道你是否这样做,机器人你也应该在每个.h文件中插入内容而不是#ifdef指令,如下所示:

#ifdef FEG_TOOLS_XXX
//put here the content 
#endif //FEG_TOOLS_XXX

这是为了避免头文件的循环依赖。