gcc 目标文件链接
gcc object file linking
我正在通过复习一些 Project Euler 问题来学习 C,正如我在 Python 中所做的那样。在 Python 中,我创建了一个通用数学实用程序文件,例如质数检查,我在需要时从中提取函数。我想知道是否有一种方法可以简单地用 C 做类似的事情,而不是每次都与实用程序文件一起编译?
我是 运行 Linux 并使用 gcc 作为我的编译器,如果有帮助的话。
看来您需要一些关于单独编译和库(存档和共享库)的基本知识。您可以在
的“2.3 编写和使用库”一章中阅读相关内容
- Advanced Linux Programming, 1st Edition 作者:CodeSourcery LLC、Mark L. Mitchell、Alex Samuel、Jeffrey Oldham。
这本书也可以从 http://www.advancedlinuxprogramming.com/ 获得 PDF 版本(尽管该网站目前已关闭)。或许你可以搜索其他地方合法下载PDF。
速成班:
您通过
创建了多个 object (*.o
) 个文件
gcc name.c -o name.o
每个文件都有一个 header 声明源文件中的函数。如果函数相关,您可能有多个源文件使用单个 header。 name.c
等源文件包含 header。使用这些函数的代码还包括 header.
你用ar
创建了一个静态库(存档)
ar ruv libXYZ.a name1.o name2.o ... nameN.o
前缀lib
很重要。
你link和
一起去图书馆
gcc prog.o -lXYZ -o prog
此命令将从 object 文件 prog.o
和从 libXYZ.a
中提取的 object 文件创建一个名为 prog
的可执行文件,这些文件是必需的满足来自 prog.o
.
的符号引用
我正在通过复习一些 Project Euler 问题来学习 C,正如我在 Python 中所做的那样。在 Python 中,我创建了一个通用数学实用程序文件,例如质数检查,我在需要时从中提取函数。我想知道是否有一种方法可以简单地用 C 做类似的事情,而不是每次都与实用程序文件一起编译?
我是 运行 Linux 并使用 gcc 作为我的编译器,如果有帮助的话。
看来您需要一些关于单独编译和库(存档和共享库)的基本知识。您可以在
的“2.3 编写和使用库”一章中阅读相关内容- Advanced Linux Programming, 1st Edition 作者:CodeSourcery LLC、Mark L. Mitchell、Alex Samuel、Jeffrey Oldham。
这本书也可以从 http://www.advancedlinuxprogramming.com/ 获得 PDF 版本(尽管该网站目前已关闭)。或许你可以搜索其他地方合法下载PDF。
速成班:
您通过
创建了多个 object (*.o
) 个文件gcc name.c -o name.o
每个文件都有一个 header 声明源文件中的函数。如果函数相关,您可能有多个源文件使用单个 header。
name.c
等源文件包含 header。使用这些函数的代码还包括 header.你用
创建了一个静态库(存档)ar
ar ruv libXYZ.a name1.o name2.o ... nameN.o
前缀
lib
很重要。你link和
一起去图书馆gcc prog.o -lXYZ -o prog
此命令将从 object 文件
prog.o
和从libXYZ.a
中提取的 object 文件创建一个名为prog
的可执行文件,这些文件是必需的满足来自prog.o
. 的符号引用