我目前正在学习 C 编程语言,但在导入我创建的模块时遇到了一些问题。
我创建了一个小模块来fgets
完美地从 stdin读取和刷新缓冲区,我不想每次都继续编写代码。我只想像以前在 Python 中那样导入这个小模块。我不知道怎么做,因为我没有使用 IDE。我只是在终端中使用 gcc 进行编译并使用文本编辑器。我试图用谷歌搜索,但徒劳无功。
你应该为你的模块创建一个头文件来声明模块中的函数——以及模块的使用者需要的任何其他信息。您可能会称该标题weekly.h
为您名字的双关语,但您可以在合理范围内选择您喜欢的任何名称。
您应该创建一个库(共享或静态 - 这取决于您),其中包含由您的模块定义的函数(以及任何全局变量,如果您有的话)。你可以称之为libweekly.so
或libweekly.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.conf
或LD_LIBRARY_PATH
或DYLIB_LIBRARY_PATH
环境变量等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句