Подтвердить что ты не робот

Использование shared_ptr и glutInit вызывает ошибку сегментации

Спросив этот, прежде чем я опробовал много вещей и выяснил, что проблема связана с 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;
}

скомпилирован с помощью:

g++ -std = С++ 11 -g -Wall -o appx main.cpp -lGL -lGLU -lglut

заставить исполняемый файл мгновенно сбой (нет вывода "Hello!" ) с segfault с использованием g++ 5.2.1, ubuntu 15.10

Просто комментируя строку

shared_ptr<double> abc;

зафиксирует сбой.

Поскольку я хочу использовать shared_ptr и перенасыщение в проекте, я хотел бы знать, как это может быть исправлено или что вызывает сбой.

Изменить 1: Трассировка GDB:

#0  0x0000000000000000 in ?? ()
#1  0x00007ffff33fb6fd in init () at dlerror.c:177
#2  _dlerror_run ([email protected]=0x7ffff33fb0e0 <dlsym_doit>,[email protected]=0x7fffffffde00) at dlerror.c:129
#3  0x00007ffff33fb148 in __dlsym (handle=<optimized out>, name=optimized out>) at dlsym.c:70
#4  0x00007ffff6fa2e1e in ?? () from /usr/lib/nvidia-352/libGL.so.1
#5  0x00007ffff6f4db47 in ?? () from /usr/lib/nvidia-352/libGL.so.1
#6  0x00007ffff7de957d in call_init (l=0x7ffff7fc59c8,[email protected]=1,         [email protected]=0x7fffffffdf58, [email protected]=0x7fffffffdf68)at dl-init.c:58
#7  0x00007ffff7de96cb in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>) at dl-init.c:30
#8  _dl_init (main_map=0x7ffff7ffe188, argc=1, argv=0x7fffffffdf58, env=0x7fffffffdf68) at dl-init.c:120
#9  0x00007ffff7dd9d0a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#10 0x0000000000000001 in ?? ()
#11 0x00007fffffffe2c8 in ?? ()
#12 0x0000000000000000 in ?? ()
4b9b3361

Ответ 1

Как сообщается в комментариях, проблема была аналогична проблеме здесь.

Решение добавляет:

 -lpthread

для флагов компилятора! Большое спасибо!