__attribute__((constructor)) 高版本gcc不执行

来源:互联网 发布:亚瑟士k24 知乎 编辑:程序博客网 时间:2024/05/24 06:39
  1. __attribute__((constructor)) // 在main函数被调用之前调用
  2. __attribute__((destructor)) // 在main函数被调用之后调


 static void func() __attribute__ ((constructor));
void func()
{
   do();


在项目中需要升级运营环境 gcc升到了高版本
之后发现func()没有在main函数之前调用。也就是没有执行

低版本的gcc 3.4.6 执行时成功的

为了解决问题 需要废弃这种写法哦

struct InitGlobal
{
  InitGlobal()
  {
    do();
  }
  ~InitGlobal()
 {
do2();
 }
};

InitGlobal init;

1 0
原创粉丝点击