全局构造函数调用不在.init_array节中

问题描述

| 我正在尝试在嵌入式目标(ARM Cortex-M3)上添加全局构造函数支持。 可以说我有以下代码:
class foobar
{
    int i;

public:
    foobar()
    {
        i = 100;
    }

    void inc()
    {
        i++;
    }
};

foobar foo;

int main()
{
    foo.inc();
    for (;;);
}
我这样编译它:
arm-none-eabi-g++ -O0 -gdwarf-2 -mcpu=cortex-m3 -mthumb -c foo.cpp -o foo.o
当我用objdump查看.init_array节时,它显示.init_section的大小为零。 我确实得到了一个名为ѭ2symbol的符号。 当我反汇编目标文件时,我看到全局构造是在static_initialization_and_destruction符号中完成的。 为什么在.init_section中没有向该符号添加指针?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)