在我尝试了很多事情之前问过这个问题并发现问题与glutInit有关.请使用以下代码示例:main.cpp
#include <iostream>
#include <memory>
#include<GL/glut.h>
using namespace std;
int main(int argcp, char **argv)
{
shared_ptr<double> abc;
glutInit(&argcp,argv);
cout<<"Hello!"<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译:
g ++ -std = c ++ 11 -g -Wall -o appx main.cpp -lGL -lGLU -lglut
导致可执行文件使用g ++ 5.2.1,ubuntu 15.10使用segfault立即崩溃(没有"Hello!"输出)
只是评论出这条线
shared_ptr<double> abc;
Run Code Online (Sandbox Code Playgroud)
将解决崩溃.
由于我想在项目中使用shared_ptr和glut,我想知道如何修复它或导致崩溃的原因.
编辑1: GDB跟踪:
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff33fb6fd in init () at dlerror.c:177
#2 _dlerror_run (operate=operate@entry=0x7ffff33fb0e0 <dlsym_doit>,args=args@entry=0x7fffffffde00) at dlerror.c:129
#3 0x00007ffff33fb148 in __dlsym (handle=<optimized out>, name=optimized out>) at dlsym.c:70
#4 …Run Code Online (Sandbox Code Playgroud)