我在运行Ubuntu 8.10的上网本设备上使用GLFW库获得了一个C / C ++应用程序。
据我了解GLFW lib的来源,它使用对X-Window库的调用来创建窗口。
我们不在机器上使用任何桌面,而是登录到tty并在后台启动X服务器。在调用
期间从目标平台上的tty *运行已编译的应用程序时glfwOpenWindow( ... );
glXQueryExtension( ...);
_glfwChooseVisual( ... );
XGetVisualInfo( ... );
应用程序暂停。它不会崩溃。通过按Ctrl + Alt + F7切换到X-Window时,应用程序会正常继续。
什么可能导致这种奇怪的行为?
BEGIN_EDIT:
现在我非常确定该问题与Ubuntu或x-server的配置有关。当我尝试运行时
glxinfo
shell中的命令也会挂起,直到我按CTRL + ALT + F7切换到X窗口。当我按下键后返回我的shell命令已经完成。
在控制台模式下,X服务器是否可以“睡眠”?
END_EDIT;
答案 0 :(得分:0)
如果X窗口服务器在后台运行,它(显然)不拥有显示器。因此,它不能回复请求,直到它回到前台。
这至少是我的期望。如果显示服务器在请求时实际上没有显示硬件,则不能要求显示服务器打开窗口。
阻止它控制硬件后面听起来对我来说是完全合理的。
答案 1 :(得分:0)
是否在X服务器上运行登录管理器?他们通常会抓住X服务器专用。尝试登录,看看是否有所作为。