在给定的绝对内存地址(Cygwin)定位变量时执行格式错误

问题描述 投票:0回答:0

以下代码使用链接器文件将变量放置在内存中给定的绝对地址处。当我在 Cygwin 下运行代码时,它失败了。但在 Linux 下运行它工作正常。我如何使用 Cygwin 为 Windows 模拟它?

#include <stdio.h>

int count __attribute__((section(".countSection"))) = 0;

int main(void) {
    printf("adr %p\n", &count);
    return 0;
}

链接.ld

SECTIONS
{
  .mySegment 0x44444444 : {KEEP(*(.countSection))}
}

编译

gcc -fno-pie -no-pie -o main.exe link.ld main.c

奔跑

./main.exe
cannot execute binary file: Exec format error
c variables gcc window cygwin
© www.soinside.com 2019 - 2024. All rights reserved.