我正在通过重新整理一些欧拉项目问题来学习 C,就像我对 Python 所做的那样。在 Python 中,我创建了一个包含通用数学实用程序(例如素数检查)的文件,当我需要它们时,我可以从中提取函数。我想知道是否有一种方法可以简单地用 C 做类似的事情,而不是每次都与实用程序文件一起编译?
我正在运行 Linux 并使用 gcc 作为编译器,如果有帮助的话。
看来您需要一些有关单独编译和库(存档和共享库)的基本知识。您可以在“2.3 编写和使用库”一章中阅读相关内容
也可以从http://www.advancedlinuxprogramming.com/获取本书的 PDF 版本(尽管该网站目前已关闭)。也许您可以搜索其他地方可以合法下载PDF。
速成课程:
您可以通过以下方式创建多个对象 ( *.o) 文件
gcc name.c -o name.o
Run Code Online (Sandbox Code Playgroud)每个文件都有一个标头,用于声明源文件中的函数。如果函数相关,您可能有多个使用单个标头的源文件。源文件例如name.c包含该标头。使用这些函数的代码也包含该标头。
您使用以下命令创建静态库(存档)ar
ar ruv libXYZ.a name1.o name2.o ... nameN.o
Run Code Online (Sandbox Code Playgroud)
前缀lib很重要。
您可以使用以下链接链接到该库
gcc prog.o -lXYZ -o prog
Run Code Online (Sandbox Code Playgroud)
此命令将创建一个prog从目标文件prog.o和从 中提取的目标文件命名的可执行文件libXYZ.a,这些文件需要满足来自 的符号引用prog.o。