在Windows 下使用和调试Linux 图形界面程序
Linux下图形用户界面程序的开发与实现

(3) Kylix 它是 Borland于 2001年初推出的 L inux版本的 Delphi,它和 W indow s下的 Delphi一样都是使用 Object Pascal语 言 。它 采用以 Xwindow Q t开发组件为基础的新的组件架 构 CLX,与多数 L inux系统兼容 ,是基于 L inux系统的第一套集界 面设计 、代码编写 、调试运行于一体的 RAD。相信熟悉 Delphi 的程序员对它一定会很快上手 。
(4) Q t 它是 Troll Tech公司的标志性产品 ,而 Q t Designer 是 Q t提供的一种真正可视化的编程工具 ,采用 C + +作为程序 设计语言 。Q t工具包有两种不同的版本 ,一种是用于商业性质 的专业版 ,另一种是用于开发 X平台自由软件的自由版 。专业 版用于创造成功的商业贸易方面的跨平台软件 ;而自由版已经 成为用 C + + GU I工具包在 L inux上进行自由软件开发的主流 , 它是 L inux上流行的 KDE桌面环境的基础 。另外 ,它还是一种 跨平台的编程工具 ,能够确保软件非常方便地应用于绝大多数 操作系统 。
3 用 Qt开发程序的方法
311 使用 Qt工具包开发程序的基本框架
Q t的可视化开发工具 Q t Designer是在 Q t 2. 2 版本以后才 提供的 ,所以早期的图形用户界面开发主要使用系统提供的界 面元素类 。使用这种开发方法设计出来的程序一般需要编写三 种类型的文件 :头文件 (. h) 、实现文件 (. cpp )和 main (. cpp )主 函数文件 :在头文件中主要是定义各种类 。在实现文件中实现 类的构造函数及成员函数 。而在主函数文件中进行程序的启动 和主窗口的设置等 。
Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序

Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序起因接下去的工作要作一些数值模拟,于是到师兄的工作站上开了个帐号。
工作站运行的是RHEL4,要说远程SSH,就算是FTerm也足够胜任,不过,因为我要用的查看计算结果的软件需要使用图形界面,这一点就比较麻烦了。
用VNC,一来耗费资源,二来VNC在win 下的表现实在不咋样。
参考记起上学期的VLSI设计的计算机实验,几十个人从运行Windows XP的PC上,用XShell SSH到实验中心的运行Solaris的Sun工作站,运行Cadence的工具集,那就是带GUI 的。
于是想,是否我也能这么干呢?往Debian中文和Ubuntu中文邮件列表投递了封邮件,提出了这个问题,根据列表上的回复,再Google了一圈,整理了一下,基本上明白了该怎么做,细节的问题还是不清楚,于是先做一下再说。
一、原理Linux/Unix的X Window具有网络透明性。
X Window系统里有一个统一的Server来负责各个程序与显示器、键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议与Server进行交互。
所以对于任何一个应用程序,本地运行和远程运行的差别仅仅是X Server的地址不同,别的没有差别。
所以在Windows运行一个X Server,就可以很方便的远程运行有GUI的Linux应用了。
同时,OpenSSH具有X转发功能,可以将Linux 主机的X程序通过SSH的管道转发给客户端。
于是,通过PuTTY到主机,再将接收到的由主机转发来的X程序的交互交给在本地Windows系统下运行的X Server来管理和显示,原则上说,这就可以实现远程使用Linux的GUI程序。
二、安装Xming需要在本地Windows上运行一个X Server。
选择有很多:Cygwin下的X Server恐怕是最著名的,但是为了这么一个小小的事情去安装一个“相对巨大”的Cygwin,似乎有些夸张;除了Cygwin,还有两个著名的商业软件可以选用,Xwin32和Xmanager,上学期IC实验用的就是Xmanager,感觉很流畅很好用,不过,虽然Xmanager可以试用,但是终究还是商业软件;还有一个选择,就是这里要讲的,开源软件Xming。
Linux调试工具

Linux调试⼯具1. 使⽤printf调试#ifdef DEBUGPrintf(“valriable x has value = %d\n”, x)#endif然后在编译选项中加⼊-DDEBUG更复杂的调试应⽤如:#define BASIC_DEBUG 1#define EXTRA_DEBUG 2#define SUPER_DEBUG 4#if (DEBUG &EXTRA_DEBUG)printf …#endif在这种情况下如果设置编译器标志为-DDEBUG=5,将启⽤BASIC_DEBUG和SUPER_DEBUG。
标志-DDEBUG=0将禁⽤所有的调试信息,也可以在程序中添加如下语句:#ifndef DEBUG#define DEBUG 0#endif2.使⽤gdb调试Gcc编译的时候要加上-g选项,让编译器在程序中添加额外的调试信息。
如果正式发布,这些调试信息可以使⽤strip命令删除。
Gdb:Backtrace栈跟踪3. 程序静态分析⼯具splintsplint功能:常识性测试并产⽣⼀些警告信息。
它可以检测未经赋值的变量使⽤,函数的参数未使⽤等异常情况。
4. 程序执⾏性能分析⼯具prof/gprof显⽰执⾏所花费的时间具体都⽤在什么操作上。
5. 内存调试ElectricFence函数库和valgrind可以⽤来检查动态内存分配的⼀些问题,包括内存泄漏。
Linux下的调试⼯具随着XP的流⾏,⼈们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试⼯作,经过这个过程出来的⾃然是⾼质量的软件。
甚⾄有⼈声称XP会淘汰调试器!这当然是有⼀定道理的,然⽽就⽬前的现实来看,这还是⼀种理想。
在⽇常⼯作中,调试⼯具还是必不可少的。
在Linux下,调试⼯具并⾮只有gdb,还有很多其它调试⼯具,它们都各有所长,侧重⽅⾯也有所不同。
本⽂介绍⼏种笔者常⽤的调试⼯具:1. mtrace在linux下开发应⽤程序,⽤C/C++语⾔的居多。
RedHat下详细配置VNC

LINUX下VNC服务的配置——在WINDOWS下使用VNC客户端访问LINUX图形界面系统环境:rehl 5.5桌面环境:在WINDOWS系统下安装VNC客户端(RealVNC),可以网上下载。
连接方法:点击启动VNC客户端,输入rehl主机 IP地址:端口,端口默认为5901。
1、确认rehl下VNC安装:一般情况下,rehl5.5会将VNC服务默认安装。
可用以下命令确定是否安装:# rpm ‐q vnc‐servervnc‐server‐4.1.2‐14.el5_3.1 /说明rehl已安装vnc服务。
若系统没有安装,可以到操作系统安装盘的Server 目录下找到VNC服务的RPM安装包vnc‐server‐4.1.2‐9.el5.x86_64.rpm,安装命令如下# rpm ‐ivh vnc‐server‐4.1.2‐9.el5.x86_64.rpm2、启动与停止VNC服务# /etc/init.d/vncserver start /启动Starting VNC server: 1:rootNew 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1Starting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/localhost.localdomain:1.log2:songNew 'localhost.localdomain:2 (song)' desktop is localhost.localdomain:2Starting applications specified in /home/song/.vnc/xstartupLog file is /home/song/.vnc/localhost.localdomain:2.log[ OK ]# /etc/init.d/vncserver stop /停止Shutting down VNC server: 1:root 2:song [ OK ]# vncserver :1 /启动桌面编号为1的连接。
5 图形化界面和命令行界面-X Window系统

主菜单 应 用 程 序 工 作 区 窗口列表 (任务条) 启动器 切换器 GNOME面板
上一页 下一页
通知 区域
时钟
退出
3.1 X Window系统
任务描述 实施流程 相关介绍 任务准备 任务实施 技能拓展 任务总结 操作练习
• 任务实施
2)GNOME桌面环境的使用
最左边的红帽按钮是GNOME面板的主菜单,单击之后会出 现一个菜单,其中几乎包含GNOME的所有项目,如应用程序、系 统工具、运行程序以及注销/屏幕锁定等,如图所示。其中主要 选项说明如下: (1)首选项:该选项的功能与较早GNOME版本中的“GNOME控制 中心”相似,其中包含的大部分程序均为桌面环境的设置入口, 如屏幕保护程序、菜单和工具栏等,具体选项如图所示。 (2)图形:该选项包含了图片的编辑和浏览工具等。 (3)编程:该选项包含了用于程序开发相关的工具。 (4)系统工具:类似于Windows中的“控制面板”,包含了系 统管理员常用的大部分工具,例如硬件、系统、终端、服务器 以及网络监视等选项。其中终端的选项提供给用户一个虚拟的 命令行环境,用户可以像在文本环境下一样使用丰富的Linux命 令。
上一页
下一页
退出
3.1 X Window系统
任务描述 实施流程 相关介绍 任务准备 任务实施 技能拓展 任务总结 操作练习
• 相关介绍
X Window系统的基本组成 X Window系统主要由3部分组成: 1)X Server(服务器) X Server是控制显示器和输入设备(主要是鼠标和键盘) 的软件。X Server可以建立窗口,在窗口中绘制图形和显示 文字,响应X Client程序的请求。每一套显示设备都只对应 惟一的X Server,而且X Server一般由系统的供应商提供, 通常无法被用户修改。 2)X Client(客户机) X Client是使用系统窗口功能的一些应用程序。作为X Server的客户端,向X Server发送请求用于完成特定的动作。 3)X Protocol(通信协议) 通信协议是X Server和X Client之间传输信息的协议, 通过这个协议,X Client传送请求给X Server,而X Server回 传状态和其他信息给X Client。
Linux操作系统实验实验报告

实验1:安装Linux系统【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。
【实验内容】:1、首先在windows系统中安装虚拟机。
在网上找到VMwareWorksttionPro版本,确定安装目录。
一直下一步,不需要太多的说明。
2、图为安装完成后的界面。
3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚拟机,进行一些简单的虚拟机设置,设置了网络链接nat模式等等。
安装完成后的界面实验2:Linux下c语言开发【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。
【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。
在centos系统中可以使用比较简便的yum命令。
在之前已经配置好了yum源。
直接输入yuminstallgcc。
回车自动安装程序和需要的依赖包。
因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。
图为xshell中的截图。
安装完毕。
然后使用vi或者vim编写hello.c运行,在屏幕上打印出hello,world。
实验3:进程创建【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程3.掌握创建进程的方法。
【实验内容】1.子进程和父进程的创建;2.编写附件中的程序实例【实验步骤】一1、打开终端,输入命令gedit1_fork.c,在1_fork.c文件中输入1_fork.bmp中的代码;2、输入命令gcc1_fork.c-o1_fork,回车后显示无错误;3、输入命令:./1_fork运行程序。
二、1、打开终端,输入命令gedit2_vfork.c,在2_vfork.c文件中输入2_vfork.bmp中的代码;2、输入命令gcc2_vfork.c-o2_vfork,回车后显示无错误:3、输入命令:./2_vfork运行程序。
从上面可以看到两次的运行结果不一样。
wsl gcc编译

wsl gcc编译标题,使用WSL和GCC编译器在Windows上进行C/C++编程。
在Windows操作系统上进行C/C++编程时,许多开发人员选择使用WSL(Windows Subsystem for Linux)和GCC编译器来获得更好的开发体验。
WSL允许用户在Windows系统上运行Linux子系统,而GCC是一个广泛使用的开源编译器,用于编译C和C++程序。
结合使用WSL和GCC编译器,可以让开发人员在Windows环境中轻松地进行C/C++编程,同时享受到Linux系统的优势。
首先,要使用WSL和GCC编译器进行C/C++编程,用户需要在Windows系统上安装WSL。
通过微软商店或命令行安装WSL并选择所需的Linux发行版,例如Ubuntu。
安装完成后,用户可以通过WSL终端访问Linux系统,并在其中进行C/C++编程。
接下来,用户需要在WSL中安装GCC编译器。
在WSL终端中,可以通过包管理器来安装GCC。
在Ubuntu中,可以使用以下命令来安装GCC:sudo apt update.sudo apt install build-essential.安装完成后,用户就可以在WSL中使用GCC编译器来编译C/C++程序了。
可以使用命令行来调用GCC编译器进行编译,例如:gcc -o output_file input_file.c.这将使用GCC编译器将名为input_file.c的C源文件编译为名为output_file的可执行文件。
用户还可以使用g++命令来编译C++程序。
使用WSL和GCC编译器进行C/C++编程的好处之一是可以在Windows系统上获得类似于Linux的开发环境。
开发人员可以使用Linux系统上常见的工具和命令来进行编程,同时可以利用Windows 系统的优势,例如图形界面和其他应用程序。
此外,WSL和GCC组合还可以让开发人员更轻松地编译和调试跨平台的C/C++程序。
LINUX系统下的CRT使用说明

然后依次打开文件夹opt、GM9000、Project即可。
一、常规调试步骤
一、常规调试步骤
一、常规调试步骤
数据拷贝完成!
二、监控软件内部菜单介绍
火灾报警监控图形显示系统是整个消防监控系统图形监控中心, 用户能够直观地了解工程设备布置情况,当设备发生异常信息,例如 火警、故障、动作等信息时,能够使用户最快、最直观地掌握事件发 生的位置信息。 如果软件还没有注册,系统启动后会提示用户进行注册,可联系 合同部,提供用户码申请注册。如果软件已经注册,则跳过此步。
一、常规调试步骤
打开电脑后,可以点击桌面左上角的GSTCRT彩色监控系统图标来运
行软件:
如果没有配置工程数据文件,运行软件会提示“工程数据文件不 存在”的信息,如下图。系统默认软件目录为空,需要我们把已 经做好的配置工程文件拷贝到此系统的软件目录中。
一、常规调试步骤
首先,在Windows文件系统中,用配置管理工具做好工程数据定义,
二、监控软件内部菜单介绍
点击后
或
进行上面两种操作都会进入设备维护模式,这时工具栏将改变,同时停止自 动切换界面,如果当前存在报警设备,则不允许进行该操作。
改变
二、监控软件内部菜单介绍
点击工具栏上的按 钮 或者直接点击设备 维护二级菜单中的 设备添加菜单。
二、监控软件内部菜单介绍
软件仅支持海湾公司生产的以下控制器的设备添加: GST200、GST500、GST5000、GST9000、GSTDH9000 *其中GST500、GST5000可以进行设备的上传下载,其它控制器 仅可以在分区图上添加设备图标。
二监控软件内部菜单介绍火灾报警监控图形显示系统是整个消防监控系统图形监控中心用户能够直观地了解工程设备布置情况当设备发生异常信息例如火警故障动作等信息时能够使用户最快最直观地掌握事件发生的位置信息
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Windows 下使用和调试Linux 图形界面程序
Windows下可以通过SSH客户端或Telnet程序远程登录到Linux/Unix 上进行管理,编程开发和调试字符界面程序.比如用Magic Unix C++这样的Windows 下的集成开发环境.界面完全模仿VC++ 6.0.可以象VC++单步调试Windows程序一样,去调试Linux或Unix远程主机应用程序.非常高效和方便.
Linux图形界面程序呢?是否能通过这种方法,在Windows下单步调试.Magic Unix C++的文档提到是可以通过StartNet的X-Win32 来完成调试.但是文档写得非常简单.后来经过查找资料和试验,发现是确实是可以用这个方法在Windows 下单步调试图形界面程序.
Windows下调试Linux 时图形界面原理就是利用了X Windows 体系是一个C/S结构的原理,在Linux 上运行一个X Windows 服务器.在Windows 下运行一个X-Windows客户端.Magigc Unix C++ 通过X Windows客户端与服务器通讯完成图形界面软件的调试.
因此要在Windows调试Linux GUI程序,必须配置如下软件
1.配置X-Windows 网络服务
2.在Windows下安装和配置X-Win32
3.在Magic Unix C++配置和调试软件
以下将以Redhat 9.0 为例,演示如何安装远程的X-Client客户端
配置X-Windows 网络服务
X-Window是用在大多数UNIX系统中的图形支持系统。
如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。
它由
X联盟()定义并维护。
大多数的Linux用户使用的都是由
XFree86 项目 ()提供的X Window系统的实现。
xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。
它允许X服务器从运行xdm服务的服务器上获得会话服务。
基本概念:
1、什么是XFree86
XFree86是X Window系统的一种开放源代码的实现。
它提供了一种对鼠标、键
盘、显卡和窗口图形环境的Client-Server接口。
所以客户端程序可以运行在不同
的主机上,由一台服务器提供X Window的Server服务。
2、什么是XDMCP
XDMCP即“X Display Manager Control Protocol”,是一种网络协议。
由它来建立
图形客户端程序与X Window服务器的连接与通信。
3、什么是XDM
XDM即“X Display Manager”,由它来启动X Window服务器,并管理图形客户
端程序的登录、会话、启动窗口管理器(KDE、Gnome)等。
KDE和Gnome也
提供了自己的xdm的实现,分别叫kdm和gdm。
4、什么是XFS
XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。
第一步:修改配置文件
为了安全,缺省的网络服务是没有打开.所以需要手工打开如下配置
/etc/X11/xdm/Xaccess
⏹这是XDM接入权限设置
⏹把(大约40行):# * #any host can get a login window
行首注释#去掉
◆表示可以让所有主机接入
◆
/etc/X11/gdm/gdm.conf
⏹GNOME的显示配置
⏹找到[xmdcp]段, 其中的Enable=false 改为Enable=true 或
Enable=1。
◆表示打开xmdcp服务
◆
/etc/kde/kdm/kdmrc
⏹KDE的显示配置,这个测试不需要改也能成功,为了保险也一并修改
⏹找到[xmdcp]段, 其中的Enable=false 改为Enable=true 或
Enable=1。
◆表示打开xmdcp服务
◆
/etc/X11/xdm/xdm-config
●在 (Line 28)displayManager.requestPort:0前面加上一个!
号,结果如下
⏹
Redhat 9.0 关于XDM缺省配置.以下各项是相关缺省配置,采用缺省值即可,不要修改
●/etc/X11/gdm/gdm.conf
⏹Port=177 #xdm侦听端口必须是177
●/etc/X11/xdm/Xservers文件属性为444
●/etc/X11/xdm/Xsetup_0的属性为755
以上配置也可以用图形界面进行配置,作用与上面等效
第二步:启动图形界面
有两种方式,一种是直接修改/etc/inittab 设为图形界面启动模
式.即修改第一句中数字为5,(3是字符界面启动)
id:5:initdefault
自动启动图形界面,X-Win32的登录框
还有一种是在主机的控制台输入startx手工启动图形界面
第三步:打开服务
为简化处理, 一般情况下选择直接关闭Linux防火墙.如果不想关闭防火墙,需要把UDP 177端口开放出来,用如下命令:
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT
●启动XFS服务
XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。
在命令行下输入如下命令
service xfs stop
service xfs start
可以用netstat 来检查7100端口来判断XFS是否正常工作
netstat –ln | grep 7100
如果结果中包含如下提示,表示XFS正常工作.
unix 2 [ ACC ] STREAM LISTENING 2436 /tmp/.font-unix/fs7100
●启动XDM服务
用xdm命令启动即可
可以用netstat 来检查177端口来判断XFS是否正常工作
netstat –ln | grep 177
如果结果中包含如下提示,表示XDM正常工作.
udp 0 0 0.0.0.0:177 0.0.0.0:*
配置X-Win32 与服务器相连.
●广播表示客户端向局域网所有X-Windows服务器发送广播包查询其IP地址
⏹如果是局域网中并且X-Windows服务器不多采用这一模式
●查询模式表示向指定主机发送X-Windows 主机,
间接表示填写HOST地址直接链接X-Windows服务器上
X-Win32连接的效果
在putty中运行图形界面程序
有时不需要调试的应用程序的情况下,一般是在putty下进行编译和运行,但图形界面程序一般不能用这种模式运行.在X-Win32配置成功后, 我们可以用putty结合X-Win32来运行Linux 图形界面程序!
1.修改redhat 9.0的服务器ssh相关配置,使其支持X11
a)修改/etc/ssh/sshd_config
●(Line 78): X11Forwarding yes #打开X11转发
●(Line 79):X11DisplayOffset 10 #打开DisplayOffset
2.重启sshd,以便刚才的修改生效
/etc/init.d/sshd restart
3.在X-Win32配置一个指向服务器的会话,参见上一节
4.配置Putty一个会话,并支持X11 转发(版本为0.60)
5.启动X-Win32并连接上线
6.用Putty登录服务器
a)在Putty下输入echo $DISPLA Y查看DISPLA Y变量,应该显示为: 10.0
7.运行任意图形界面程序(如kwrite), X-Win32将提示允许连接,选择始终执行这一操
作,点击确定.
这时在已经联接的X-Win32出现执行程序
8.aa
在Magic Unix C++调试图形界面程序
以下以QT为例.来演示如何调试一个QT应用程序
1.在Magic Unix C++ 创建一个QT的C++项目.
2.加入QT源代码
加入代码如下
3.修改编译程序的Makefile
●在主菜单的project->project Settigs要采用自定义的
Makefile命令
●qmake -project;qmake;make
4.设置运行的X-Windows环境变量
●设置环境变量DISPLAY,值为 Magic Unix C++所在机器IP:0.0,
●如本例,机器IP为192.168.0.1 则值为 192.168.0.1:0.0
5.按一般的步骤编译程序
6.运行X-Win32连接到Linux主机
7.按一般单步调试的步骤调试
此时在屏幕上会出现出现联接提示,确认后开始调试。