Skip to content
Stone Kang edited this page Dec 16, 2013 · 3 revisions

#编译和运行#

##软件包依赖## 在编译之前,请保证系统上安装了如下软件包:

  • make
  • automake
  • autoconf
  • libtool
  • gcc

##主要编译步骤##

  1. autoreconf -fi
  2. ./configure
  3. make V=0

完成以后会在window_manager下生成可执行的服务器程序server。测使用客户端程序在debug/samples里,另外debug/widget里也有一些用来测试控件的程序。

##主要运行步骤## 0. 退出桌面,进入字符界面。VirtualBox是右边的Ctrl+F1,VMWare是Ctrl+Alt+(Space, F1),真实安装的话直接Ctrl+Alt+F1即可。

  1. 切换到window_manager目录
  2. sudo ./server
  3. 在另外一个tty里(把上面的F1换成F2)用普通用户登录,切换到debug/samples目录,运行客户端程序,比如./tab。客户程序运行起来之后要回到运行服务器的那个tty才能看到界面。
  4. 停止服务器:./shutdown
  5. ~~停止服务器之后,如果输入没有反应,回车也不换行,可以在回车一次之后输入reset再回车,这样会重置终端。这是一个已知的bug。~~该问题在最新的commit中应该已经修复。

##编译步骤说明##

  1. autoreconfautoconfautomake等一系列动作的自动组合,会由configure.ac和Makefile.am(以及它引用的那些local.mk文件)产生configure等脚本程序,以及Makefile.in。
  2. 再运行上一步生成的configure,就会根据Makefile.in产生Makefile和config.h。
  3. 最后make会根据上一步生成的Makefile里的指令编译整个项目。make的参数"V=0"是说不要显示完整的命令。这样会让编译过程看起来更清晰,警告信息也会更醒目。

其实configure那一步最好是在另一个空的子文件夹下运行,比如新建一个文件夹叫_build,然后进入_build,再运行../configure,并指定参数--srcdir=..,表示源代码的根目录在当前目录的上一层。这样,configure产生的Makefile等,以及make产生的二进制文件都会放在这个_build子文件夹下,不会对原来的文件产生干扰。

不过我们的项目比较小,所以就算在原目录下运行./configure也没问题。

##运行步骤说明## 首先解释tty的意思。tty这个名字起源比较早,全称是TeleTYpewriter(电传打字机)。现在在Linux里的含义一般是指安装图形界面之前的那个黑色屏幕。一般的系统会提供7个tty,分别用Ctrl+Alt+F1~F7可以切换到。如果有图形界面,其中第七个会被用来显示图形。 从最近几个版本开始,EGUI的服务器和客户端必须显示在同一个tty里了。服务器启动之后,会把屏幕清空,直到某个用户程序启动,并向服务器发送了绘图请求,窗口才会出现在这个黑色屏幕上。但是服务器占用的那个tty已经被清空成黑色,也没有光标,所以为了输入启动用户程序的命令,必须打开另一个tty。

Clone this wiki locally