• Code::Blocks配置GTK+2和GTK+3


    Code::Blocks配置GTK+2GTK+3

     

    作者

    He YiJun – storysnail<at>hotmail.com

       

    版权

    转载请保留本声明!

     

    本文档包含的原创代码根据General Public License,v3 发布
    GPLv3 许可证的副本可以在这里获得:http://www.gnu.org/licenses/gpl.html

    本文档根据GNU Free Documentation License 1.3发布
    GFDL1.3许可证的副本可以在这里获得:http://www.gnu.org/licenses/gfdl.html

    文中所引用的软件版权详见各软件版权具体声明,文中所提及的所有商标均为各自商标所有人的财产。
    作者在此向所有提供过帮助和支持的朋友表示感谢,此致!

    更新

    2014-11-10

    修改版权和一些笔误。

    2014-02-08

    增加了GTK3的部分。

    本文已停止更新,关于使用gtk开发的最新内容请参阅msys2开发环境配置

       

     

            这篇文章的第一版还是3年前写的,虽然一直断断续续的维护更新,但gtk2毕竟已经过时,想来会和gtk1.2一样渐渐成为人们记忆长河中的一粒沙吧。gtk3是在2011年2月10日发布的, 目前已经更新到3.8版,这一年我基本将精力放在了嵌入式设备方面,并没有太多时间玩gtk, 更别说更新这篇文章了!前些时日G3908(G3908是一个GSM/GPS设备的代号)设备完成,我需要为其在PC上写一个控制界面,自然的我想到GTK,而如何配置Code::Blocks开发gtk3程序也就成为必须跨过的一道小土坎。

    一 安装codeblock10.05GTK+开发包

    1:到http://www.codeblocks.org下载最新版的codeblock,我一般会选择带MinGW编译器的版本,文件名是codeblocks-12.11mingw-setup.exe,下载完成后运行安装文件,一步步安装到结束。

    2:下载安装GTK+开发包

    For GTK+2

    http://www.gtk.org/下载GTK+开发包,注意是下载all-in-one bundle,但不要下载2.24.10这个版本因为该版本的开发包有严重Bug,并不能正常使用,建议下载gtk+-bundle_2.16.6-20100912_win32.zip

    For GTK+3:

    gtk官方到目前为止还没有提供GTK+3的开发包和运行时,不过网上的很多大牛都自己编译了GTK+3的开发包, 你可以用google搜索!这里我推荐http://www.tarnyko.net/提供的GTK+3,主页默认是法语,但有英语页面!

    进入http://www.tarnyko.net/dl/下载页面后选择下载gtk+-bundle_3.6.4-20130513_win32.zip下载完成后将其解压,解压后得到的文件放到了C:gtk+目录下,注意这个gtk+目录是需要自己建的.

    二 设置环境变量

    我使用的是win7 64位系统,设置方法如下:

    点击开始菜单,之后右键单击 “计算机”–>“属性”在侧边栏选择“高级系统设置”->在弹出的窗口选择"高级"标签页"–>“环境变量” (我是建立在"用户变量"里,当然你也可以建立在“系统变量”里),

    按新建,依次添加,注意如果变量名已经存在,例如PATH,那就按编辑按钮,然后在原有的变量值后面加入新的变量值,每个变量值之间用分号隔开。

    变量名

    变量值

    GTK_HOME

    C:gtk+

    INCLUDE

    C:gtk+include

    LIB

    C:gtk+lib

    PATH

    C:gtk+in

    三 配置codeblock

    For GTK+2:

    启动codeblock,点击"File"->"New"->"GTK+ Project"创建一个GTK+2项目.

    For GTK+3:

    启动codeblock,点击"File"->"New"->"Empty Project"创建一个空项目,由于

    codeblocks目前只支持GTK+2,所以这里只好建立一个空项目然后自己设置。

    点击"Project"->"build options"

    1:选择“Compiler settings”标签中的Other options子标签,在其中加入编译选项

    -mms-bitfields

    选项解释:编译GTK程序必须的选项

    2:选择“Linker settings”标签

    • "Link libraries"中点击"Add"按钮加入gtk+ lib,注意在弹出的文件选择对话框中将c:gtk+lib目录下的文件全选就就可以将所有选中的文件一次性加入了,不需要一个一个的加入。

    • Other Linker options加入链接选项

    -mwindows

    选项解释:告诉编译器去编译一个窗口程序,生成的程序可以去掉控制台。如果你正在写一个终端程序或需要在终端调试信息,那么不要加这个选项!

     

    3:选择“Search directories”标签

    "Compiler"子标签中加入GTK+的头文件路径,这里比较郁闷,只能一条条的添加,所以用到哪个功能添加哪个功能吧.

    For GTK+2

    C:gtk+include

    C:gtk+includeatk-1.0

    C:gtk+includeatk-1.0atk

    C:gtk+includecairo

    C:gtk+includefontconfig

    C:gtk+includefreetype2

    C:gtk+includefreetype2freetype

    C:gtk+includefreetype2freetypeconfig

    C:gtk+includegail-1.0

    C:gtk+includegail-1.0gail

    C:gtk+includegail-1.0libgail-util

    C:gtk+includegdk-pixbuf-2.0

    C:gtk+includegdk-pixbuf-2.0gdk-pixbuf

    C:gtk+includegio-win32-2.0

    C:gtk+includegio-win32-2.0gio

    C:gtk+includeglib-2.0

    C:gtk+includeglib-2.0gio

    C:gtk+includeglib-2.0glib

    C:gtk+includeglib-2.0gobject

    C:gtk+includegtk-2.0

    C:gtk+includegtk-2.0gdk

    C:gtk+includegtk-2.0gtk

    C:gtk+includelibpng14

    C:gtk+includepango-1.0

    C:gtk+includepango-1.0pango

    C:gtk+includepixman-1

    C:gtk+libglib-2.0include

    C:gtk+libgtk-2.0include

    For GTK+3

    C:gtk+include

    C:gtk+includeatk-1.0

    C:gtk+includeatk-1.0atk

    C:gtk+includecairo

    C:gtk+includefontconfig

    C:gtk+includefreetype2

    C:gtk+includefreetype2freetype

    C:gtk+includefreetype2freetypeconfig

    C:gtk+includegail-3.0

    C:gtk+includegail-3.0libgail-util

    C:gtk+includegdk-pixbuf-2.0

    C:gtk+includegdk-pixbuf-2.0gdk-pixbuf

    C:gtk+includegio-win32-2.0

    C:gtk+includegio-win32-2.0gio

    C:gtk+includeglib-2.0

    C:gtk+includeglib-2.0gio

    C:gtk+includeglib-2.0glib

    C:gtk+includeglib-2.0gobject

    C:gtk+includegtk-3.0

    C:gtk+includegtk-3.0gdk

    C:gtk+includegtk-3.0gtk

    C:gtk+includejasper

    C:gtk+includelibcroco-0.6

    C:gtk+includelibcroco-0.6libcroco

    C:gtk+includelibpng15

    C:gtk+includelibrsvg-2.0

    C:gtk+includelibrsvg-2.0librsvg

    C:gtk+includelibxml2

    C:gtk+includelibxml2libxml

    C:gtk+includelzma

    C:gtk+includepango-1.0

    C:gtk+includepango-1.0pango

    C:gtk+includepixman-1

    C:gtk+libglib-2.0include

    C:gtk+liblibffi-3.0.12include

    一般来说就这些,如果安装了新的库再加。

    4:点击"Setting"->"Global Variables..."会弹出一个"Global Variable“的窗口,在这里配置gtk的编译选项,

     

    For GTK+2:

    base

    C:gtk+

    include

    C:gtk+include

    lib

    C:gtk+lib

    cflags

    `pkg-config --cflags gtk+-2.0`

    lflags

    `pkg-config --libs gtk+-2.0`

     

     

    For GTK+3:

    base

    C:gtk+

    include

    C:gtk+include

    lib

    C:gtk+lib

    cflags

    `pkg-config --cflags gtk+-3.0`

    lflags

    `pkg-config --libs gtk+-3.0`

    然后就可以编译gtk+程序了,如果没有安装GTK+运行时,运行gtk+程序还会报错,

    这需要将C:gtk+in下的所有DLL文件都复制到项目的binDebug目录下,之后

    就可以运行了。

    QA

    Q1

    ld.exe||cannot open output file binDebug est.exe Permission denied|||=== Build finished: 1 errors, 0 warnings ===| 编译出现这个错误是什么原因

    A1

    新的数据无法写入Debug est.exe文件,这是因为原来的那个test.exe程序还在 运行,在进程管理器里把它杀掉就好了。

     

    Q2

    C:gtk+includeglib-2.0glibgtypes.h|34|fatal error: glibconfig.h: No such file or directory| ||=== Build finished: 1 errors, 0 warnings (0 minutes, 0 seconds) ===|

    A2

    在搜索路径里添加C:gtk+libglib-2.0include,详见三:配置codeblock中的第3小节.

  • 相关阅读:
    数据结构与算法----->算法----->高级排序算法:基数排序
    数据结构与算法----->算法----->高级排序算法:希尔排序
    数据结构与算法----->算法----->高级排序算法:快速排序
    数据结构与算法----->算法----->简单排序算法:冒泡、选择、插入排序
    数据结构与算法----->数据结构----->图
    数据结构与算法----->数据结构----->红-黑树
    数据结构与算法----->数据结构----->2-3-4树以及外部存储
    数据结构与算法----->数据结构----->二叉树
    数据结构与算法----->数据结构----->堆
    myeclipse2014配置多个同版本的Tomcat
  • 原文地址:https://www.cnblogs.com/arely/p/4415960.html
Copyright © 2020-2023  润新知