Ссылки GCC запускают ошибку seg при выполнении программы

#c #linux #gcc

#c #linux #gcc

Вопрос:

Я создал программу, которая отлично работает в Linux Mint, и теперь мне нужно заставить ее работать на компьютере IBM, работающем под управлением Linux red hat. Что касается библиотек, я поместил их в модули (мне пришлось перекомпилировать SFML для red hat), но когда я запускаю свою программу, это вызывает ошибку segfault, вот что valgrind рассказал мне об этом сбое :

     Process terminating with default action of signal 11 (SIGSEGV)
==30230==  Access not within mapped region at address 0xE0
==30230==    at 0x55B5974: sf::priv::GlxContext::GlxContext(sf::priv::GlxContext*) (in /workfs/dev/libs/SFML-2-2.1/build/lib/libsfml-window.so.2.1)
  

Непосредственно перед ошибкой segfault у меня возникает эта странная ошибка: xrandr не удается загрузить расширение для отображения.
Эта ошибка по-прежнему возникает при попытке запустить SFML examples
Вот код, который вызывает ошибку segfault :

 //segfault ;
    this->window = new sf::RenderWindow(sf::VideoMode(this->width, this->height), this->title,sf::Style::Close, settings);
  

Похоже, SFML не может создать содержимое OpenGL, потому что xrandr ноет, у кого-нибудь есть идея? Может ли кто-нибудь пролить свет на мою проблему: D?

Комментарии:

1. Мне кажется, что вы разыменовываете nullpointer, но без какого-либо кода…

2. дело в том, что моя программа отлично работает на Linux mint, поэтому я не думаю, что проблема здесь в коде…

3. Когда ваша программа вызывает UB, может случиться все, что угодно. Вы где-нибудь получаете указатель из какого-либо API, а затем используете его без проверки? Такие вещи могут работать в одной конфигурации, но не в другой.

4. хорошо, я добавил код, который отвечает за ошибку segfault, я прокомментировал ту часть кода, где я повторно использую window, так что это единственный момент, когда я его использую, и он завершается с ошибкой.

5. Похоже, кому-то нужно использовать отладчик для этого.