c - 链接两个目标文件以生成一个二进制文件

标签 c windows assembly linker

如何使用gcc链接两个目标文件以生成一个二进制文件
目标文件之一是从汇编代码生成的,另一个是从c代码生成的。

我有一个链接脚本,该脚本使用elf_i386作为输出格式。当我尝试使用

ld -T linker.ld -m elf_i386 -o file1.o file2.o


它生成错误:invalid output format elf_i386
链接描述文件如下:

OUTPUT_FORMAT(elf32_i386)
ENTRY(START)
SECTIONS
{
    .text :{*(.text)}
    .data :{*(.data)}        
    .bss :{*(.bss)}
}

最佳答案

我想我找到了答案。我正在使用MinGW。 MinGW不支持交叉编译。因此,我决定选择Cygwin,效果非常好。我这样做是为了进行OS开发。

关于c - 链接两个目标文件以生成一个二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53120724/

相关文章:

c - 从另一个进程的线程 ID 获取线程句柄

c++ - WinAPI Sleep() 函数调用休眠时间超过预期

windows - 我应该在 Linux 还是 Windows 中交叉编译?

assembly - MinGW 32 "undefined reference to ` 退出进程@ 4'"

assembly - 气体中断

用于打印图案的 C 代码 1 22 22 333 333 333

c - 如何在 GTK 应用程序中嵌入 Flash 播放器?

c - 如何等待子进程发送信号?

windows - 如何创建一个无标题边框的窗口?当窗口最大化时它不应该覆盖任务栏

无法理解简单程序集 x86 中 %rax 的值