在哪里可以找到包含printf函数定义的目标文件?

Ana*_*nda 5 printf gcc object-files

我正在使用gcc编译器和ubuntu 12.04操作系统.我想知道在哪里可以找到目标文件以及在哪个目录下,其中包含printf函数的定义.我不是在寻找包含原型的头文件,而是包含实际定义的目标文件.

Kev*_*eer 4

您在寻找目标文件还是源文件?

.o 目标文件存储在库libc.so. 在大多数 Linux 发行版上,该文件位于/lib/libc.so. 在 Ubuntu 11 和 12 上,作为多架构支持的一部分, /lib 的内容已移至/lib/i386-linux-gnu/lib/x86_64-linux-gnu

您可以使用(archive)命令来获取单个目标文件,ar该命令用于使用x(extract)选项创建库:

ar x libc.a stdio.o 
Run Code Online (Sandbox Code Playgroud)

不过,这似乎不太有用,所以我猜测您实际上需要源文件而不是目标文件。为此,您需要安装glibc 软件包,其中包含 printf.c (它调用 vprintf,vprintf 又调用 vfprintf,其中包含 printf 的实际代码)。

该源可以在 Launchpad 上浏览。它非常复杂,并且有超过 2000 行代码。