Linux 作为一种无与伦比的操作系统,是构建图形应用程序的理想平台,而Libxcb库就是在Autodesk推出的Linux平台上发挥作用的一款库。
Libxcb是Linux下的一个开源的面向C语言的图形库,它专为X Window窗口系统开发,它提供了用于访问X Window的原生API,使得Linux开发者可以准确地访问X Window系统。
通过Libxcb,Linux开发者可以实现多种多样的图形程序,Libxcb库拥有几乎完整的X Window功能集,这些功能包括显示模式切换、窗口管理、输入焦点和许多其他组件。Libxcb库还支持XKB(X Window系统的按键映射),以解决输入输出管理的问题。
有了Libxcb库的支持,Linux开发者可以轻松创造真正的图形应用程序。他们可以使用X Window API创建和管理各种图形界面,利用XKB在窗口系统中切换键位,她们也可以利用输入焦点管理器在不同窗口之间传递文本,大大加快程序开发的效率和提高了程序的质量。
下面就来看看如何在Linux下安装和使用Libxcb库,因为Libxcb库比较年轻,所以不支持自动安装,如果要使用Libxcb,需要执行以下步骤:
1. 安装一些必要的依赖库,其中包括XCB库、libxcb库、libXi库等等;
2. 使用“$ tar xzf libxcb-x.y.z.tar.gz”解压Libxcb源码;
3. 进入解压文件夹,执行“$ ./configure”,最后使用“$ make” 和 “$ make install” 将Libxcb编译并安装到系统中;
安装完成后,我们就可以开始使用Libxcb库创建我们的窗口程序了,下面是一个简单的例子,它创建了一个与X Window交互的窗口:
// 初始化连接
xcb_connection_t * connection = xcb_connect(NULL, NULL);
// 获取屏幕
xcb_screen_t * screen = xcb_setup_roots_iterator(xcb_get_setup(connection)).data;
// 创建窗口
xcb_window_t window = xcb_generate_id(connection);
xcb_CREATE_window(connection, XCB_COPY_FROM_PARENT, window, screen->root, 0, 0, 100, 100, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, screen->root_visual, 0, NULL);
// 映射窗口

xcb_map_window(connection, window);
// 做清理工作
xcb_disconnect(connection);
由上面的代码可以看出,使用Libxcb库实现图形应用程序十分容易,只需要几行代码,即可实现相应的功能,使用起来非常方便。让我们来看看Linux,它是如何使我们创建出优秀的图形程序的。
总而言之,Libxcb库是一款无可替代的图形编程库,它为Linux上的图形应用程序的开发搭建了一个完美的舞台,只要开发者愿意,就能创造出完美的图形程序!
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
linux中的运行级别有几种?都分别是什么?如果我想让系统启动时默认进入图形界面,那么我该怎么办?
终端下:vi /etc/inittab 把3改为5,这样默认启动方式就是图形界面了,若想改回终端方式,把5改为3.5表示图形界面3表示终端
如何删除linux下安装的软件
Linux软件的安装和卸载一直是困扰许多新用户的难题。 在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序”来实现。 与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。 它可以用来建立、安装、查询、更新、卸载软件。 该工具是在命令行下使用的。 在Shell的提示符后输入rpm,就可获得该命令的帮助信息。 软件的卸载 1.软件的卸载主要是使用rpm来进行的。 卸载软件首先要知道软件包在系统中注册的名称。 键入命令: #rpm -q -a 即可查询到当前系统中安装的所有的软件包。 2.确定了要卸载的软件的名称,就可以开始实际卸载该软件了。 键入如下命令即可卸载软件: #rpm -e [package name] 参数e的作用是使rpm进入卸载模式。 对名为[package name]的软件包进行卸载。 由于系统中各个软件包之间相互有依赖关系。 如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。 你可以使用如下的命令来忽略依赖关系,直接开始卸载: #rpm -e [package name] -nodeps 忽略依赖关系的卸载可能会导致系统中其它的一些软件无法使用。 补充: 如果是以结尾的二进制软件,可以用以下方法安装(以so-6_为例): 在so-6_所在文件夹下运行模拟终端 输入: ./so-6_ 并按回车! 当然也可以输入: ./so 再用[Tab]键补全 (./表示当前目录,如果终端不在该软件所在目录下打开,则在软件名前尚需输入相应的路径。 ) 如果在图形界面,也可直接单击(或双击,视具体的鼠标设置而定)运行反安装程序就可以了!
查看linux当前加载库文件的命令
ldd 查看可执行文件链接了哪些 系统动态链接库 nm 查看可执行文件里面有哪些符号 strip 去除符号表可以给可执行文件瘦身 如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令 strings Linux操作系统上面的动态共享库大致分为三类: 1、操作系统级别的共享库和基础的系统工具库 比方说, , 等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。 如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。 此外还可能有其他特定Linux版本的系统库目录。 这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。 2、应用程序级别的系统共享库 并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。 很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。 以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。 这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。 Linux的系统共享库搜索路径定义在/etc/这个配置文件里面。 这个文件的内容格式大致如下: /usr/X11R6/lib64 /usr/X11R6/lib /usr/local/lib /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/ImageMagick/lib 假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/文件里面,然后执行:ldconfig 命令即可。 ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/。 为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从里面抽取文本信息来检查一下: strings /etc/ | grep ImageMagick 输出结果为: /usr/local/ImageMagick/lib/.10 /usr/local/ImageMagick/lib/ /usr/local/ImageMagick/lib/.10 /usr/local/ImageMagick/lib/ /usr/local/ImageMagick/lib/libMagick++.10 /usr/local/ImageMagick/lib/libMagick++ 已经成功了! 3、应用程序独享的动态共享库 有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。 因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。
发表评论