以下代码使用链接器文件将变量放置在内存中给定的绝对地址处。当我在 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