我正在尝试在嵌入式目标(ARM Cortex-M3)上添加全局构造函数支持.让我说我有以下代码:
class foobar
{
int i;
public:
foobar()
{
i = 100;
}
void inc()
{
i++;
}
};
foobar foo;
int main()
{
foo.inc();
for (;;);
}
Run Code Online (Sandbox Code Playgroud)
我这样编译:
arm-none-eabi-g++ -O0 -gdwarf-2 -mcpu=cortex-m3 -mthumb -c foo.cpp -o foo.o
Run Code Online (Sandbox Code Playgroud)
当我用objdump查看.init_array部分时,它显示.init_section的大小为零.
我得到一个名为的符号_Z41__static_initialization_and_destruction_0ii.当我反汇编目标文件时,我看到全局构造是在static_initialization_and_destruction符号中完成的.
为什么.init_section中没有将指针添加到此符号?