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

  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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章