Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Visual Studio-X11:缺少显示环境变量_Linux_Visual Studio_Visual Studio 2017_Cross Platform_Visual Studio 2019 - Fatal编程技术网

Linux Visual Studio-X11:缺少显示环境变量

Linux Visual Studio-X11:缺少显示环境变量,linux,visual-studio,visual-studio-2017,cross-platform,visual-studio-2019,Linux,Visual Studio,Visual Studio 2017,Cross Platform,Visual Studio 2019,我正在使用Visual Studio 2019 Enterprise开发一个跨平台(Windows/Linux)x64 GUI应用程序 在2019版中,我们可以使用Visual Studio对plataforms(Windows-Native)和Linux-Ubuntu(在虚拟机中运行)进行调试。 你可以在这里看到: 因此,我遵循了本教程,使用VisualStudio2019 IDE在我的Ubuntu18VM中运行并调试了这个GUI示例应用程序完美 现在,我尝试使用自定义GUI应用程序: 为了

我正在使用Visual Studio 2019 Enterprise开发一个跨平台(Windows/Linux)x64 GUI应用程序

在2019版中,我们可以使用Visual Studio对plataforms(Windows-Native)和Linux-Ubuntu(在虚拟机中运行)进行调试。

你可以在这里看到:

因此,我遵循了本教程,使用VisualStudio2019 IDE在我的Ubuntu18VM中运行并调试了这个GUI示例应用程序完美

现在,我尝试使用自定义GUI应用程序:

为了实现跨平台的GUI,我使用GLFW3.3

步骤:

  • 创建Visual Studio CMake项目

  • > P>编写C++代码和CMAKLISTH.TXT

  • 添加VS调试配置(Windows x64和Linux x64)

  • 编译并链接(与Windows和Linux目标系统相比,在这两个系统上都正常)

  • 在Windows和Linux目标上运行(Ok)

  • 但是

    当我在Windows安装程序中运行它时,一切正常…一个GLFW窗口出现…很好 当我在Linux调试(由Visual Studio)中运行它时,当VS调试程序点击
    glfwInit()
    行时,我得到了以下错误:

    启动GLFW上下文,OpenGL 3.3

    Glfw错误65544:X11:缺少显示环境变量

    因此,当我选择Linux调试配置时,我的虚拟机中没有GUI窗口。

    在internet上搜索时,我发现有必要对Visual Studio导出launch.vs.json文件中的DISPLAY linux环境变量。

    你可以在这里看到:

    在我的虚拟机Ubuntu中,我得到了
    DISPLAY:0

    然后,我编写了launch.vs.json文件:

    “导出显示=:0;${debuggerCommand}”

    “导出显示=:0.0;${debuggerCommand}”

    详细信息:

    如果我手动进入我的Ubuntu虚拟机,双击编译后的应用程序,它会显示GLFW窗口,一切正常

    我的问题是:


    <如何>使用VisualStudio 2019 IDE将显示环境变量导出到Linux VM来调试我在虚拟箱(VM)内运行的应用程序。

    < P>微软C++团队的一些好家伙(感谢埃里卡,Elisabeth)帮助我,我找到了解决方案。 该问题与Visual Studio自动生成的“launch.json”文件有关。

    我必须更改的“launch.json”属性:

    1-设置一个
    “名称”:“helloworld”
    。默认值为“

    2-设置
    “项目”:“CMakeLists.txt”
    。默认值为“

    3-设置
    “项目目标”:“helloworld”
    。此属性不是VS 2019自动创建的

    4-设置
    “cwd”:“${debugInfo.defaultWorkingDirectory}”
    。默认值为
    “${debugInfo.defaultRemoteDirectory}”

    5-在管道参数中添加“导出显示=:0;”

    6-删除行
    “processId:0”
    。通过这一行,只有root用户才能在Linux上部署和调试

    7-在pipeArgs中添加新行:
    “--tty=${debugInfo.tty}”
    。创建CMake项目VS2019时,此行不是自动生成的

    因此,pipeArgs是:

    "pipeArgs": [
              "/s",
              "${debugInfo.remoteMachineId}",
              "/p",
              "${debugInfo.parentProcessId}",
              "/c",
              "export DISPLAY=:0;${debuggerCommand}",
              "--tty=${debugInfo.tty}"
            ]