Я разрабатываю кросс-платформенное (Windows/Linux) приложение с графическим интерфейсом x64, используя Visual Studio 2019 Enterprise.
В этом выпуске 2019 года мы можем использовать Visual Studio для отладки обеих платформ (Windows — Native) и Linux — Ubuntu (работает на виртуальной машине).
Вы можете увидеть это здесь: https://devblogs.microsoft.com/cppblog/using-visual-studio-for-cross-platform-c-development-targeting-windows-and-linux/
Итак, я следовал этому руководству, и я запустил и отладил этот пример приложения с графическим интерфейсом на моей виртуальной машине Ubuntu 18 с использованием Visual Studio 2019 IDE. Отлично!
Теперь я попытался сделать свое пользовательское приложение с графическим интерфейсом:
Чтобы сделать кроссплатформенный графический интерфейс, я использую GLFW 3.3.
Шаги:
Создание проекта Visual Studio CMake
Напишите код C++ и CMakeLists.txt.
Добавьте обе конфигурации отладки VS (Windows x64 и Linux x64)
Компиляция и связывание (ОК для целей VS Windows и Linux)
Выполнить (ОК на обеих платформах VS Windows и Linux)
Но...
Когда я запускаю его в программе установки Windows, у меня все в порядке... появляется окно GLFW...хорошо! Когда я запускаю его в Linux-отладке (с помощью Visual Studio), когда отладчик VS попадает в строку glfwInit()
, я получил эту ошибку:
Starting GLFW context, OpenGL 3.3
Glfw Error 65544: X11: The DISPLAY environment variable is missing
Итак, когда я выбираю конфигурацию отладки Linux, у меня НЕТ окна с графическим интерфейсом на моей виртуальной машине.
Поискав в Интернете, я увидел, что необходимо сказать Visual Studio , чтобы экспортировать переменную среды DISPLAY linux в файл launch.vs.json.
Вы можете увидеть это здесь: https://docs.microsoft.com/en-us/cpp/build/get-started-linux-cmake?view=vs-2019
Внутри моей виртуальной машины Ubuntu я получил DISPLAY:0
Затем в моем файле launch.vs.json я написал:
"export DISPLAY=:0;${debuggerCommand}"
or
"export DISPLAY=:0.0;${debuggerCommand}"
Подробности:
ЕСЛИ я вручную войду в свою виртуальную машину Ubuntu и дважды щелкну в скомпилированном приложении, появится окно GLFW, и все пойдет хорошо!
Моя проблема:
Как я могу экспортировать переменную среды DISPLAY в виртуальную машину Linux с помощью интегрированной среды разработки Visual Studio 2019 для отладки моего приложения, которое будет работать внутри виртуальной коробки (ВМ).