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