5

我正在尝试使用 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

4

1 回答 1

3

GCC 使用不同且不兼容的方式注册全局构造函数。与其尝试移植它,不如根据 GCC 使用的 ABI 重写它。

有关血淋淋的细节,请参阅例如libgcc/crtstuff.cGCClibgcc/gbl-ctors.h源代码树。

于 2013-04-26T12:09:09.363 回答