LINUX环境下编译错误 not in executable format: 不可识别的文件格式

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-23
linux下的tar.gz文件为什么解压时却提示gzip: stdin: not in gzip format

首先你要知道,在linux系统中,文件类型跟后缀名无关,后缀名只是为了方便识别,所以你下载的压缩包可能是tar.gz格式的,也有可能是tar.bz2或tar.xz格式,因为可能别人压缩之后不小心改错了名,这也是避免不了的。要看是什么格式的压缩包可以用 file clamav-0.99.2.tar.gz 来查看,当然你也可以用通用的解压缩命令来解包,不用管什么格式
tar xvf clamav-0.99.2.tar.gz

意思是传入的格式并不是一个字符串直接量(字符串变量或常量), 而且没有字符串类型的参数.
推测应该是函数的参数格式不对, 或者执行文件需要传入外部参数 argc 和argv 等. 最好能把更详细的错误贴出来, 以便定位和解决问题。

产生core文件是程序崩溃时留下的信息,如果想要查看core文件的内容,请执行GDB跟踪程序,命令如下:
gdb ./yourfile core.5245
根据你给出的命令和gdb错误提示,可以断定,你gdb命令用错了,第二个参数是你的可执行程序,比如,你的可执行程序叫DataIntegrityCheck,第3个输入项才是core文件的名字。那么整个命令应该是
cd /home/liubo/DataIntegrityCheck/bin
gdb ./DataIntegrityCheck core.5245

DataIntegrityCheck这里一定是你编译好的可执行程序,我只是举个例子而已。如果你编译没有指定,它甚至可以是a.out

你再试试吧。
core文件,改成.c是没有用的

补充newopig

你要用gdb看core dump file,似乎可以用-c选项
gdb -c core.*

core dump file是程序执行中(通常是crash时)的调试信息,包括内存,寄存器等。

自己可以参考man gdb 。

如果 进程是 test , 所在位置是 /tmp/bin; gdb 所在位置是 /home/shared,core dump文件与gdb同目录
则命令为:
cd /tmp/bin 进入进程执行目录
/home/shared/gdb test core.12345
加载完成后,执行 bt
此时可以查看崩溃时堆栈调用信息
我遇到这个不可识别的错误是因为 命令的格式写错了

产生core dump 文件的原因就是进程内部出错

建议man一下gdb

这不是编译错误吧
可能是文件的问题
把core.5245改成core.5245.c(源代码的文本格式) 或 core core.5245.txt