【发布时间】:2019-02-16 15:10:48
【问题描述】:
首先我有一个 singleton.cpp 文件来构建一个单例对象,并使用 attribute((constructor))
声明实例#include<iostream>
using namespace std;
class singleton{
public:
singleton(){cout<<"singleton ctor\n";}
};
__attribute__((constructor)) static void beforeFunction()
{
printf("beforeFunction\n");
singleton obj;
}
还有一个简单的 main.cpp
#include<iostream>
using namespace std;
int main(){
return 0;
}
我一起构建main.cpp singleton.cpp:
g++ singleton.cpp main.cpp -o main
./main
beforeFunction
Segmentation fault
那么为什么我的程序崩溃了,发生了什么?如何解决?我在 ubuntu 上使用 gcc。非常感谢。
【问题讨论】:
标签: constructor linker attributes g++ elf