Имею следующий простейший код:
#include <GL/gl.h>
#include <GL/glx.h>
#include <cstdio>
#include <cstdlib>
#include <memory>
class T {
public:
};
int main()
{
printf( "1\n" );
glXSwapBuffers( 0, 0 );
printf( "2\n" );
std::make_shared<T>();
printf( "3\n" );
return( 0 );
}
Компиляция:
g++ -std=c++0x main.cpp -lGL -lGLU
Но при вызове ./a.out получаю Segmentation fault (core dumped) еще на этапе загрузки бинарника в память, то есть нет даже вызовa какого либо метода:
home@dev:~/test$ ./a.out
Segmentation fault (core dumped)
Если закомментировать какой либо вызов - код будет загружаться и работать. Как отдельно создание shared_ptr так и вызов glx.
В чем может быть проблема? И как ее фиксить? Надо для написания велосипеда (just for fun), и понять причину такого креша для избежания в будущем.