__constructor__函数调用了数千次

时间:2015-09-21 22:49:12

标签: c++ gcc

我已将BSD许可库中的一些源文件包含到我的程序中。我没有注意到这个签名的功能:

class SomeClass {
    ...
    private:
    static void initializeFunc() __attribute__ ((__constructor__));
    ....
};

this other stackoverflow question开始,似乎__constructor__应该在运行的二进制文件加载库时调用initializeFunc。当然在我的情况下,源代码被编译成二进制文件,所以它不被称为库。

现在,我的组织中的其他人注意到,从一个oprofile开始,即使SomeClass从未被实例化或调用,初始化函数也会被调用数千次。我不明白这种行为。可能我应该删除该属性并直接从main调用initializeFunc。但是为什么在我的情况下它不是被称为一次?有人可以帮我理解这里发生了什么吗?

0 个答案:

没有答案