我正在尝试使用GCC编译此代码,并且我有这些#pragma
指令,我正在尝试将其转换为GCC可理解的指令,而我无法弄清楚如何:
#pragma section(".CRT$XCA", read, write)
#pragma data_seg(".CRT$XCA") // start of ctor section
_PVFV __xc_a[] = {0};
#pragma section(".CRT$XCZ", read, write)
#pragma data_seg(".CRT$XCZ") // end of ctor section
_PVFV __xc_z[] = {0};
#pragma data_seg()
#pragma comment(linker, "/merge:.CRT=.rdata")
我知道要创建新版块,您可以使用__attribute__ ((section (".CRT$XCZ")))
,但data_seg
呢?
答案 0 :(得分:3)
GCC使用不同且不兼容的方式注册全局构造函数。您应该根据GCC使用的ABI重写它,而不是试图移植它。
有关血淋淋的细节,请咨询例如GCC源代码树中的libgcc/crtstuff.c
和libgcc/gbl-ctors.h
。