在运行Ubuntu8.10的类似上网本的设备上,我有一个使用GLFW库的C/C++应用程序。
据我所知,GLFW lib的源代码是通过调用X-Window库来创建窗口的。
我们不使用机器上的任何桌面,而是登录到tty并在后台启动X-server。在调用期间从目标平台上的tty*运行编译的应用程序时
glfwOpenWindow( ... );
glXQueryExtension( ...);
_glfwChooseVisual( ... );
XGetVisualInfo( ... );应用程序停止。它不会崩溃。当通过点击Ctrl+Alt+F7切换到X-Window时,应用程序继续正常运行。
是什么导致了这种奇怪的行为?
BEGIN_EDIT:
现在我很确定这个问题与Ubuntu或x-server的配置有关。当我试着跑的时候
glxinfo在shell中,该命令也会挂起,直到我通过点击CTRL+ALT+F7切换到X-window。当我在击键后返回到我的shell时,命令已经完成。
会不会是X-server在控制台模式下处于“睡眠”状态?
END_EDIT;
发布于 2009-10-07 14:14:11
如果X window服务器在后台运行,它(显然)不拥有显示器。因此,只有在它回到前台时,它才能回复请求。
这至少是我的期望。如果显示服务器在请求时并不实际拥有显示硬件,则不能要求该显示服务器打开窗口。
对我来说,阻塞直到它控制硬件后端听起来是完全合理的。
发布于 2009-10-14 17:28:29
X服务器上是否正在运行登录管理器?他们通常会抢占独占使用的X服务器。尝试登录,看看是否会有所不同。
https://stackoverflow.com/questions/1433208
复制相似问题