微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

stdio.o在linux机器上居住在哪里?

我正在尝试手动执行我的程序的所有编译步骤。 在我使用链接器命令ld的最后一个步骤中,我需要指定库的对象文件(stdio,因为我已经在我的代码中使用了printf),那么只有make和.exe文件。 这个目标文件驻留在哪里?

我怎样才能find一个全局variables的析构函数调用使用gdb?

如何彻底销毁C中的套接字连接

如何保证一些代码被执行,当进程退出或被杀死在c + +?

设备创build期间的DirectX 11 E_INVALIDARG

在同一端口发送和接收udp数据包

我建议你运行gcc -v your_file.c 。 这将让你看到你的链接器正在使用什么命令。 你可能没有stdio.o文件链接。 相反,它包含在C运行时库中,确切的文件将取决于您的系统配置。

stdio是C标准库的一部分。 标准库的确切位置是系统特定的,但它通常位于一个名为libc.a或libc.so文件中。

在我的机器中可以找到:

/usr/lib/x86_64-linux-gnu/libc.a /usr/lib/x86_64-linux-gnu/libc.so

您可以要求ld搜索目录: ld --verbose | grep SEARCH_DIR ld --verbose | grep SEARCH_DIR 。

libc.a是一个ar ( man )压缩文件,您可以使用ar命令从libc.a压缩文件提取stdio.o :

$ # list archive member with `ar t` $ ar t /usr/lib/x86_64-linux-gnu/libc.a | grep ^stdio stdio.o $ # extract stdio.o with `ar x` $ ar x /usr/lib/x86_64-linux-gnu/libc.a stdio.o

它可能是根源

类似于/usr/lib或/usr/lib***

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐