当我尝试在Windows Subsystem for Linux上执行使用gcc -m32 main.c -o main编译的32位文件时,会出现以下错误:bash: ./main: cannot execute binary file: Exec format error。 如果我不使用-...
当我尝试调试一个可执行文件时:(gdb) break +1 No symbol table is loaded. Use the "file" command. 那到底是什么意思呢? 符号表是否附加到可执行文件中?
我想知道为什么编译一个打印“Hello, World!”的.c文件生成的.o文件比打印同样内容的Java .class文件要大?
Windows PE二进制格式和Linux ELF二进制格式有何区别?编译器如何将文件转换为操作系统指定的格式,当它只应该创建源代码的汇编语言等效物时?能否简要解释一下?
我正在阅读PE格式文档。在文档中,单词“image”出现了很多次,似乎总是与单词“executable”一起出现。然而,它没有解释为什么“executable”被称为“image文件”。 维基百科上有一个页面条目列表,其中包含“image”的几个术语,例如“磁盘映像”,“ISO映像”,甚至链...
我了解PE是COFF的修改版本,而PE+则是支持64位的PE改进版,但PEI是什么呢?我说PE和PEI之间没有区别,它们可以互换使用,这正确吗?