如何查看.o和.exe文件

本文介绍了在Linux环境下如何使用objdump、file、nm、ldd和strings等命令来查看C语言编译生成的目标文件(.o)和可执行文件(.exe)的详细信息,包括内存分配、符号表、依赖库和源码反汇编等。这些工具对于理解和调试程序非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于c语言编译生成的.o文件的查看,直接在linux下是可以通过命令去查看的。

关于查看.o与.exe文件的例子:

首先编写一个1.c文件

clude<math.h>
int main()
{
     int x = 1;
     return 0;
}

gcc -c 1.c进行编译生成1.o文件,然后通过objdump -h 1.o可以查看该目标文件的信息:
在这里插入图片描述
可以看出此时VMA与LMA是0,所以编译阶段不分配内存
接着cc -o a 1.c -g进行链接生成可执行的文件a,然后objdump -h a查看
在这里插入图片描述
可以发现此时的VMA和LMA不为0,表示已经将可执行文件加载到内存并分配了存储空间。

objdump -S a反汇编出源码,下图仅截取了部分内容。

在这里插入图片描述


其他的一些可以linux下查看可执行文件的相关信息的命令如下:

file 可执行文件 可查看可执行文件是ARM架构还是X86架构

nm 可执行文件 可查看文件中的符号,包括全局变量,全局函数等,可参考:https://www.cnblogs.com/downey-blog/p/9583765.html

ldd 可执行文件 可查看文件执行所需要的动态库

strings 可执行文件 可查看文件中所有的符号,包括编译器版本信息

readelf 可执行文件 可查看文件的所有详细信息,包括文件的头信息,动态库信息,段信息等

Linux下objdump使用方法可参考:https://blog.csdn.net/freeplayer/article/details/45133721

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的贝塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值