【问题标题】:How to create executable coff file from a C source如何从 C 源代码创建可执行的 coff 文件
【发布时间】:2009-12-27 03:02:28
【问题描述】:

我正在尝试使用 Simcore Alpha/Functional Simulator 进行模拟,我需要创建一个图像文件,但它给出了一个错误,例如“这不是 Coff 可执行文件”如何从 C 源创建一个可执行的 Coff 文件在linux中?

【问题讨论】:

  • 你到底运行了哪些命令?
  • ./SimCore-Loader thread SimCore-Loader Version 1.3 2003-11-05 hdr.f_magic: 17791, thread : 这不是 coff 可执行文件。用法: SimCore-Loader [option] 可执行 args -s:使用 4 字节格式而不是 8 字节。 -f[filiname]:指定输出文件名。输入的可执行文件必须是 alpha COFF 格式。

标签: c linux unix ubuntu


【解决方案1】:

为此,您需要一个用于输出 COFF 文件的交叉编译 gcc。如果找不到预构建的 gcc,您可能需要自己构建。

下载 gcc 后,需要对其进行配置。重要的选项是 --target;因此,如果您想针对 Alpha 架构,您可以这样做:

configure --target=alpha-coff

我还建议您为二进制文件添加前缀并将它们安装到不同的目录中,这样编译器与系统编译器的交互就不会出现问题:

configure --target=alpha-coff --prefix=/opt/cross-gcc --program-prefix=coff-

(这将在 /opt/cross-gcc/bin 中创建 coff-gcc,如果需要不同的内容,您可以调整它们)。

【讨论】:

  • 他想针对 alpha 架构,而不是 i386。但除此之外,您正在引导他走上正确的道路——通向交叉编译器。
  • @Ben - 谢谢,我专注于 COFF 问题,错过了关于 Alpha 的提及。答案已更新。
【解决方案2】:

Linux 可执行格式称为 ELF。 COFF 是对象模块的常用文件格式,它们被链接以制作 ELF 文件或 EXE 文件

在你的情况下,如果你可以访问 gcc,你可以尝试

gcc mysource.c -o myprogram

【讨论】:

  • vadmin@vadmin:~/Desktop/SimCore-Loader-1.3$ gcc thread.c -o thread -lpthread vadmin@vadmin:~/Desktop/SimCore-Loader-1.3$ ls abc COPYING main. cc Makefile memory.o thread thread.o asd define.h main.o memory.cc SimCore-Loader thread.c vadmin@vadmin:~/Desktop/SimCore-Loader-1.3$ ./SimCore-Loader thread SimCore-Loader Version 1.3 2003-11-05 hdr.f_magic:17791,线程:这不是 coff 可执行文件。用法: SimCore-Loader [option] 可执行 args -s:使用 4 字节格式而不是 8 字节。 -f[filiname]:指定输出文件名。输入的可执行文件必须是 alpha COFF 格式。
  • 出现这样的错误,什么是 alpha COFF 格式或 coff 可执行文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 2018-01-23
  • 1970-01-01
  • 2017-07-15
相关资源
最近更新 更多