我在Windows 10上使用Ubuntu 20.04.3 WSL。我将我的c++程序(它使用SDL2库)编译成一个名为“main”的可执行文件。
g++ -o main main.cpp CApp.cpp -lSDL2 -std=c++17
当我尝试使用以下命令运行可执行文件时:
./main
它返回:
error: XDG_RUNTIME_DIR not set in the environment.
enyaitl31#
谢谢你的评论。答案已经在这里得到了回答:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-aadithyasb'至于为什么可执行文件无法在WSL中运行,原因是因为WSL2(截至2021年12月)尚未支持GUI应用程序。它仅适用于Windows 11 Insider。下面是链接:https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps您需要在Windows 11 Build 22000或更高版本上才能访问此功能。
qxgroojn2#
您可以在windows上使用像xming这样的软件来启动一个X服务器,wsl可以在该服务器上启动GUI应用程序。虽然WSL 1/2可能会挣扎,如果事情需要访问的功能,如帧缓冲区的内核没有支持,我认为大多数事情使用qt也会失败。
2条答案
按热度按时间enyaitl31#
谢谢你的评论。答案已经在这里得到了回答:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-aadithyasb'
至于为什么可执行文件无法在WSL中运行,原因是因为WSL2(截至2021年12月)尚未支持GUI应用程序。它仅适用于Windows 11 Insider。下面是链接:
https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps
您需要在Windows 11 Build 22000或更高版本上才能访问此功能。
qxgroojn2#
您可以在windows上使用像xming这样的软件来启动一个X服务器,wsl可以在该服务器上启动GUI应用程序。虽然WSL 1/2可能会挣扎,如果事情需要访问的功能,如帧缓冲区的内核没有支持,我认为大多数事情使用qt也会失败。