导入模块 — C 中的自定义模块

贡贡达利

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

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

乔纳森·莱夫勒

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

您应该创建一个库(共享或静态 - 这取决于您),其中包含由您的模块定义的函数(以及任何全局变量,如果您有的话)。你可以称之为libweekly.solibweekly.a-或使用扩展适合您的机器(.dylib.a在MacOS,例如)。源文件可能是也可能不是weekly.c——如果有多个函数,你可能会有多个源文件,所以它们不会都是weekly.c. 您应该将此代码(头文件和源文件及其生成文件)放入单独的源目录中。

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

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

#include "weekly.h"

并且您的代码将可用。使用 中的共享库$HOME/lib,您必须确保运行时系统知道在哪里可以找到库。如果您将其安装在 中/usr/local,则已经为您完成了。如果将其安装在 中$HOME/lib,则必须调查诸如/etc/ld.so.confLD_LIBRARY_PATHDYLIB_LIBRARY_PATH环境变量等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章