Почему glutInit дает сбой при запуске из Visual Studio (WSL), но работает правильно с самого терминала WSL? - PullRequest
0 голосов
/ 06 мая 2019

Я борюсь со следующей проблемой и очень ценю любую помощь: - (

Я скомпилировал библиотеку робототехники DARTsim для Ubuntu в подсистеме Windows для Linux в Windows 10.

Проблема: Когда программа запускается для отладки из Visual Studio, происходит сбой программы при вызове «glutInit (& argc, argv)». Когда скомпилированная программа запускается непосредственно из командной строки Ubuntu, код работает нормально, а графический интерфейс отображается через xserver.

Отладчик показывает следующую информацию:

[Нижний 1 (процесс 15079) завершен с кодом 01]

Я использую следующую настройку :

  • Windows 10
  • Visual Studio 2017 и 2019 (без разницы)
  • WSL с Ubuntu 18.04 LTS
  • X-Sever: VcXsrv

Текущее состояние и то, что я пробовал:

  • Код компилируется без проблем и предупреждений в Visual Studio 2017 и 2019 в проекте кросс-компиляции Linux без каких-либо предупреждений.
  • GDB загружает символы, и я могу отлаживать код в Visual Studio до строки glutInit (& argc, argv).
  • Также не отображается предупреждение или ошибка при запуске отладчика GDB в Visual Studio, все символы, кажется, загружены правильно, например: Загружен '/usr/lib/x86_64-linux-gnu/libglut.so.3'. Символы загружены.

  • Программа работает нормально при вызове из командной строки Ubuntu, а графический интерфейс работает без проблем через Xserver.

  • Код прекрасно работает в отладчике gdb и в командной строке, при вызове из командной строки (включая графический интерфейс через XServer).
  • Другие приложения xserver, такие как xeyes и glxgears также отлично работают из командной строки.
int main(int argc, char* argv[]) 
{
......................
... Some code here ...
......................

MyWindow window;
window.setWorld(myWorld);

glutInit(&argc, argv); // <========= !! Crashes in Visual Studio !! =======
window.initWindow(640, 480, "Sim");
glutMainLoop();

return 0;
}

Ожидаемые результаты: Отображается графический интерфейс, и я могу отладить свою программу.

Фактическое поведение: При нажатии на строку glutInit (& argc, argv) программа завершается без ошибок, Visual Studio отображает следующую информацию: [Нижний 1 (процесс 21006) вышел с кодом 01] Der Thread 'simulation.out' (0x520e) с кодом 0 (0x0) geendet.

...