WSL(Ubuntu)与X11、glfw(3)用C++编程兼容吗?

问题描述 投票:1回答:1

我目前正在WSL(Windows Subsystem for Linux)上编译一些在Linux系统上编写和测试的代码。这个依赖图形的程序依赖于上述软件包(X11、libglfw和一些linux特有的函数(即pread)),我正试图让它在Windows上工作,至少在WSL环境下。

我正在使用什么。

  • Windows 10,开发者模式,启用WSL,从Windows商店安装Ubuntu。
  • MobaXTerm用于支持X11和查看程序的输出(?
  • 使用标准c++14的C++编译器

到目前为止,我所尝试的(并被卡住了)。

  1. 用... libglfw3-dev 在Ubuntu上用apt软件包管理器安装(WSL)。
    • 问题:编译成功,但运行时崩溃。使用gdb,并从提出的异常中回溯:原开发者抛出一个错误,声称他们未能打开GLFW窗口(表明问题是与使用GLFW有关?
  2. 使用程序源码中包含的glfw3(静态库形式(.a文件))。
    • 问题:编译时错误。undefined reference to: XF86VidModeQueryExtension, XRR*, Xinerama*,Xcursor错误无处不在,尽管已经安装了xcursor, xinerama, libxrandr-dev和apt-dep。
  3. 使用WSL从头开始编译glfw3。cmake CMakeLists.txtapt install ... 反复进行,直到满足所有的依赖条件。makesudo make install最后,我删除了静态库文件,看看是否会有帮助。为了确保我没有使用1中的libglfw3-dev,我用以下方法删除了它 apt remove
    • 问题:与1相同的问题(代码中的同一行)。
  4. 从glfw下载页面下载了预编译的Windows版本,并附上了为与mingw-w64一起工作而设计的dll。
    • 问题:未定义对 __imp_* 在编译时源于win32_init.c、vulkan.c、wgl_context等。

有没有办法让glfw和X11在WSLWindows上用这个程序工作?很抱歉,我没有更详细的痕迹;但是,我不能分享实际的代码。不过,我可以确认它在Ubuntu上编译并成功运行。

c++ linux x11 glfw
1个回答
2
投票

从windows应用商店下载的Ubuntu(目前)不支持任何图形界面。这个功能只为那些想要运行Linux终端工具的开发者设计。

您无法打开 openGL 窗口。它将创建一个窗口(在内存缓冲区),但没有 "UI支持 "来打开它。(MobaXTerm 也将无法工作)。)

在三维硬件访问的虚拟化模式下运行Ubuntu。使用 超五类, VirtualBoxVMware (在虚拟机中运行Ubuntu)

© www.soinside.com 2019 - 2024. All rights reserved.