热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos搭建GTK+Codeblock完整版

一、所需的源码包 1. GNU make 工具 2. GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要) 3
一、所需的源码包
1. GNU make 工具
2. GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要)
3. GNU libiconv 库(当系统上没有 iconv() 函数的时候需要)
4. fontconfig库
fontconfig 是提供系统范围内字体设置,定制和允许应用程序访问的函数库。
5. FreeType库
GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中, fontconfig负责字体的管理和配置,freetype负责单个字符的绘制,pango则完成对文字的排版布局。Freetype是一个操作字体的 函数库,它不但可以处理点阵字体,也可以处理多种矢量字体,包括truetype字体,为上层应用程序提供了一个统一的调用接口。
6. libpng库
libpng软件包包含 libpng 库,这些库被其他程序用于读写png文件。PNG 库是用来创立和操作PNG 格式的图形文件.PNG 格式是设计来替代GIF,它对于更小范围的TIFF(标记图象文件格式)来说, 有了很多的进步和拓展并且减少了关于专利权的麻烦.
7. jpegsrc库
能够使用JPEG算法压缩文件。
8. tiff库
tiff库被很多程序用于读写tiff文件。
9.pkg-config 工具
pkgconfig 包括 pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。
对于支持 pkg-config 工具的 GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对 .pc 文件搜索路径的设置。.pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的 .pc 文件为止。
10. GLib 库
GLib是GTK+和GNOME工程的基础底层核心程序库,创建 GDK 和 GTK 应用程序时该库可提供许多有用的定义和函数,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用 的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。
11. ATK 库
ATK 包包含了 ATK 库。ATK是可访问性工具箱(Accessibility Toolkit)的简称。ATK 为所有的GTK2程序提供了解决 Accessibility 需求的框架。
12. Cairo 库
Cairo,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。Cairo提供一个稳定的用户层API,它可以提供现代 化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alpha半透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输 出。
13. Pango 库
Pango 库提供了底层的文本编排绘制生成函数, 一套生成整段文本布局的高层函数和帮助编辑多国文本的函数。
14. GTK+ 库
其中前五项一般比较新的Linux版本中,系统都会自带。需要注意的一个问题是如果GTK的安装路径为/opt/gtk时,在 PKG_CONFIG_PATH中除了要添加/opt/gtk/lib/pkgconfig之外,还有加上/usr/lib/pkgconfig。因为安 装在系统的库其.pc文件都在/usr/lib/pkgconfig中,想要在安装GTK时用到这些系统自带的库时,必须把路径设置清楚。
在收集安装GTK所需的源码包时最重要,也是最容易忽略的一个问题就是各个包之间版本的匹配问题。我在安装GTK就忽略了这个问题,结果走了很多弯 路。解决这个问题最简单的办法就是登陆GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk,在上面下载各种源码包。在这个站点上,每个GTK版本兼容的源码包都放在一个文件夹下。 例如我选择安装GTK v2.6,只要在ftp://ftp.gtk.org/pub/gtk/v2.6中下载各个包即可。不过选择V2.6的朋友要严重注意一个问题,支持GTK V2.6的pango包有两个版本-1.8.0、1.8.1,1.8.0是一个失败的版本,如果选择它,在安装GTK时就会死活找不到pango库。我当 时就是这个版本的受害者,花了很长时间也无法在安装GTK时连接pango库,后来在网上看到一个老外说这个版本有bug,只能使用1.8.1版本。妈 的!这不坑人吗!
根据依赖关系的要求,库的安装要按照这样的先后顺序进行:GLib、Atk、Cairo、Pango、Gtk+。
二、设置
主要包括对LD_LIBRARY_PATH和PKG_CONFIG_PATH的设置,具体如下:
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
注意,如果想要使用系统中已有的fontconfig、FreeType等库,需要加上系统原有的库:
> export LD_LIBRARY_PATH=/usr/lib
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/usr/lib/pkgconfig
> export PKG_CONFIG_PATH=/usr/X11R6 /lib/pkgconfig:$PKG_CONFIG_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
容易被人忽略的一点是LD_LIBRARY_PATH和PKG_CONFIG_PATH这两个环境变量只对当前的终端窗口有效。如果到了没有进行上述设置的终端窗口中,pkg-config 将找不到新安装库的.pc 文件、从而可能使后面进行的安装无法进行。(自己犯的一个简单却造成严重后果的错误,吐血提醒大家哦)
三、源码包的安装
我安装的GTK版本为v2.6,用到的源码包包括:jpegsrc.v6b.tar.gz、libpng-1.2.8.tar.bz2、tiff- v3.6.1.tar.gz、pkgconfig-0.15.0.tar.gz、glib-2.6.6.tar.bz2、atk- 1.9.0.tar.bz2、cairo-1.2.4.tar.gz、pango-1.8.1.tar.bz2、gtk+-2.6.9.tar.bz2。 把它们都放在root的主目录下。
将 GTK+ 及其依赖库设置安装到同一个目录/opt/gtk下、而不是每一个库占用一个不同的目录,可以给以后的库的设置带来方便。而且,在将来不再需要这个版本的 GTK+ 及其依赖库的时候可以通过删除这个目录将它们简单地去除。
1.安装pkgconfig

> tar zxvf pkgconfig-0.15.0.tar.gz
> cd /root/pkgconfig-0.15.0
> ./configure
> make
> make install
每个过程结束后,都可以用用 echo $? 检查是否执行安装成功。如果输出是 0,说明配置成功;0 之外的数字说明配置失败。在 Linux 系统上,可以用这个方法检查一个命令或程序在其结束后返回给系统的值是多少。一般 0 代表成功,非 0 表示程序异常退出。
2.安装glib
> tar zjvf glib-2.6.6.tar.bz2
> cd /root/ glib-2.6.6
>./configure --prefix=/opt/gtk
>make
>make install
3.安装atk
> tar zjvf atk-1.9.0.tar.bz2
> cd /root/ atk-1.9.0
>./configure --prefix=/opt/gtk
>make
>make install
4.安装cairo
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --with-x --enable-win32=no
>make
>make install
5.安装Pango
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --libdir=/opt/gtk/lib --with-x
>make
>make install
6.安装libpng
> tar zjvf libpng-1.2.8.tar.bz2
> cd /root/ libpng-1.2.8
> make prefix=/opt/gtk \ZLIBINC=/opt/gtk/include ZLIBLIB=/opt/gtk/lib -f scripts/makefile.linux
>make prefix=/opt/gtk install -f scripts/makefile.linux
7.安装libtiff(就是tiff)
> tar zxvf tiff-v3.6.1.tar.gz
> cd /root/ tiff-v3.6.1
> ./configure --prefix=/opt/gtk --noninteractive \ --with-DIR_MAN=/opt/gtk/share/man
> make
> make install
8.安装libjpeg(就是jpegsrv)
> tar zxvf jpegsrc.v6b.tar.gz
> cd /root/jpeg-6b
> ./configure --enable-static --enable-shared --prefix=/opt/gtk
> make
> make install
注:jpeg默认不share library,因此要手工指定--enable-shared,一般安装lib时这一点都是要注意的。
10.安装gtk
> tar zjvf gtk+-2.6.9.tar.bz2
> cd /root/ gtk+-2.6.9
> ./configure --prefix=/opt/gtk --with-x --without-libjpeg
> make
> make install
四、检验是否正确安装GTK
为了检验是否正确安装GTK,利用GTK编写一个简单的程序,这个程序创建 200x200 大小的窗口
五:linux平台下编译安装wxGTK(以wxGTK-2.6.2 为例)
下载wxGTK-2.6.2.tar.gz,所在位置http://www.wxwidgets.org。
下载后,输入如下命令进行安装:
tar zxvf wxGTK-2.6.2.tar.gz
cd wxGTK-2.6.2
./configure --enable-xrc --enable-monolithic --enable-unicode
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
3、库文件路径指向正确
因为,我们在安装wxGTK时没有指定路径,因此,wxGTK被装到了/usr/local/lib下,当然如果指向了路径,
即加入“-prefix=/usr”这个参数后,可以省略这一步。
库文件路径指向方法:
vi /etc/ld.so.conf
在文件最后输入:
/usr/local/lib
加入后,运行:
/sbin/ldconfig
4、安装验证
可以通过以下操作的输出检查安装是否正确:
wx-config --prefix
wx-config --libs
which wx-config
5.下载Code::Block
在http://www.codeblocks.org/downloads/下载
下载地址:http://ncu.dl.sourceforge.net/sourceforge/codeblocks/codeblocks-8.02-src.tar.bz2
下载后输入如下命令进行安装:
tar jxf codeblocks-8.02-src.tar.bz2
cd codeblocks-8.02
./configure –prefix=/usr
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
6、启动并创建快捷方式
在桌面上点鼠标右键,选择“创建启动器”,并输入如下路径:
/usr/bin/codeblocks
注:搭建完成后,如不能运行codeblocks,请把selinux关闭重新启动然后再试下.
本文出自 “自由之家” 博客,
出处http://yuliang.blog.51cto.com/626833/276195
推荐阅读
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
author-avatar
Leeeeeee7777777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有