导入模块-C语言中的自定义模块

时间:2018-08-18 23:45:26

标签: c

我目前正在学习C编程语言,并且在导入所创建的模块时遇到一些问题。

我创建了一个小模块,可以用fgets读取并完美地从stdin刷新缓冲区,我不想每次都继续编写代码。我只想像在Python中一样导入这个小模块。我不知道怎么做,因为我没有使用IDE。我只是在终端中使用gcc进行编译,并使用文本编辑器。我试图用Google搜索,但徒劳无功。

2 个答案:

答案 0 :(得分:1)

您应该为模块创建一个标头,以声明模块中的功能以及该模块的使用者需要的任何其他信息。您可以称该标题为weekly.h,这是您名字的双关语,但您可以在推理范围内选择任何喜欢的名字。

您应该创建一个库(共享或静态,由您自己决定),该库包含模块定义的函数(以及任何全局变量,如果有必要的话)。您可以将其称为libweekly.solibweekly.a-或使用适合您计算机的扩展名(例如,在macOS上为.dylib.a)。源文件可能为weekly.c,也可能不是weekly.c —如果有多个功能,您可能会有多个源文件,因此它们不会全部为$HOME/include。您应该将此代码(标头,源文件及其生成文件)放入单独的源目录中。

您应将标头和库安装在一个众所周知的位置(例如,标头为$HOME/lib,库为/usr/local —或者可以安装在{{1}下的相应目录中}),然后确保在编译(标题为-I$HOME/include或链接(-L$HOME/lib-lweekly)时使用正确的选项。

您使用该模块的源代码将包含:

#include "weekly.h"

,您的代码将可用。对于$HOME/lib中的共享库,您必须确保运行时系统知道在哪里可以找到该库。如果您将其安装在/usr/local中,则说明已经完成。如果将其安装在$HOME/lib中,则必须调查诸如/etc/ld.so.confLD_LIBRARY_PATHDYLIB_LIBRARY_PATH环境变量之类的东西。

答案 1 :(得分:0)

您需要使用函数声明类型和extern变量创建头文件(.h)。然后,在要使用这些功能的程序中,包括此.h文件,并将已编译的.o文件(以及您的函数)添加到目标文件列表中。您完成了。