mgrmhc的个人主页

http://www.qtcn.org/bbs/u/123299  [收藏] [复制]

mgrmhc

  • 0

    关注

  • 2

    粉丝

  • 15

    访客

  • 等级:新手上路
  • 总积分:31
  • 男,1985-10-06

最后登录:2016-09-29

更多资料

日志

在Windows环境下利用Netbeans+MinGW搭建gtk、gtkmm开发环境

2012-06-14 00:24
以下内容,完全摘自以下两个网页:
http://t.data321.cn/article-36724-1.html
http://apps.hi.baidu.com/share/detail/20704542

筹办情况
1)Java(JDK)



下载地点:
文件下载

然后安装。
2)NetBeans7.1




下载地点:
文件下载
这是最新版7.1,挑选C/C++版本的下载便可以。
3)MinGW



在MinGW办公室网页的左边,挑选“DownLoads”进入下载页面。



进入sourceforge后,点击“Installer”。



挑选“mingw-get-inst”,停止下载。



挑选最新的一个。这个是经由过程收集在线下载并安装的。
4)GTk







挑选windows的32位下载



挑选All in one bundle 下载调集绑定包。



停止下载。

2.起头设置设置装备摆设
1)安装并设置装备摆设MinGW









这里挑选“Dowload”的一项,停止在线下载安装。






挑选安装途径。



挑选安装项目,此处倡议全数安装。全勾







起头下载



下载并安装




2)安装JAVA(JDK)
一起下一步,没啥好说的。
3)安装与设置装备摆设NetBeans
安装进程就不再说了,一起下一步,便可以。 上面说一下设置装备摆设。



在“天生东西”选项卡的右边,增加一个东西调集。现实这里是增加MinGW的途径。



点击“阅读”按钮。



挑选MinGW目次下的bin文件夹。



然后,肯定。
此中Make号令需求零丁增加的。



普通在这个位置MinGW\msys\1.0\bin\make.exe
同时还要确保将D:\MinGW\msys\1.0\bin 这个途径增加到windows的情况变量中去。
然后设置装备摆设“代码帮助”



这里增加Gtk目次下的Include文件夹上面一切第一层的文件夹。



另有Gtk目次下的Lib文件夹下gtk-2.0和glib-2.0目次下的Include目次。

若是你还用Gtkmm的话,倡议再在C++编译器中也按如上增加。
然后肯定。
这里能够检测一下,MinGW设置装备摆设的是不是准确,能够新建一个空文件,打印输出一个HelloWorld,若是能够一般打印,申明MinGW安装设置装备摆设的没有题目。
上面是最主要的一项,把一些参数增加到项目中去。NetBeans在编译项目时,不会出错。
新建一个项目









项目属性----天生-----C编译器------编译行-----其他选项----增加:
`pkg-config --cflags gtk+-2.0`





项目属性----天生-----链接器-----库----库中增加
`pkg-config --libs gtk+-2.0`








在Main.c文件中插手以下代码:

1 #include <gtk/gtk.h>
2
3 int main(int argc, char* argv) {
4 GtkWidget *window;
5 gtk_init(&argc, &argv);
6 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
7 gtk_widget_show(window);
8 gtk_main();
9 return FALSE;
10 }

若是能够一般编译经由过程,则会上面的相干的提醒。




"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
make: Entering directory `/d/Lesson/CppApplication_1'
rm -f -r build/Debug
rm -f dist/Debug/MinGW-Windows/cppapplication_1.exe
make: Leaving directory `/d/Lesson/CppApplication_1'

清算 胜利 (总计时候: 652毫秒)
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make: Entering directory `/d/Lesson/CppApplication_1'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_1.exe
make: Entering directory `/d/Lesson/CppApplication_1'
mkdir -p build/Debug/MinGW-Windows
rm -f build/Debug/MinGW-Windows/main.o.d
gcc.exe `pkg-config --cflags gtk+-2.0` -c -g `pkg-config --cflags gtk+-2.0` -MMD -MP -MF build/Debug/MinGW-Windows/main.o.d -o build/Debug/MinGW-Windows/main.o main.c
mkdir -p dist/Debug/MinGW-Windows
gcc.exe `pkg-config --cflags gtk+-2.0` -o dist/Debug/MinGW-Windows/cppapplication_1 build/Debug/MinGW-Windows/main.o `pkg-config --libs gtk+-2.0`
make: Leaving directory `/d/Lesson/CppApplication_1'
make: Leaving directory `/d/Lesson/CppApplication_1'

天生 胜利 (总计时候: 1s)



======================================================================================================================================================================================================

======================================================================================================================================================================================================
前面已经介绍了如何在Windows下利用Netbeans搭建C/C++开发环境,不知道的童鞋可以瞅这里。话说Netbeans的CDT真是太好用了,完全一个免费版的Visual Studio,用来开发C/C++是太方便了,而且还可以跨平台。那么在Windows下开发gtk、gtkmm是否也可以用Netbeans来作为集成开发环境呢?答案是肯定的。事实上,gtk、gtkmm在Windows下的表现也是非常好的,只不过由于配套工具都很零散,不像Qt那样事先给预备好,所以自己动手整合比较麻烦一点,不过只要亲手试一次就知道其实也还是比较容易配置的。

gtk是用C语言开发的跨平台界面库,虽然是用C语言开发的,但一样采用了面向对象的程序设计,用C来实现面向对象是很巧妙的,不过不得不说,因为C本身不支持面向对象,所以硬要用C来实现面向对象,就需要用一些宏、特殊结构等等方式来迂回实现,随着用户界面的日趋复杂,交互功能的增多,C就比较被动了,这个时候真正面向对象的程序设计语言就会在规模上、效率上、代码稳定度上体现出优势。gtkmm就是用C++封装了gtk而形成的一套界面库,和Qt类似,但是比Qt有特色,是因为gtkmm完全采用符合标准的C++自身特性来实现图形用户界面的信号(消息)响应机制,而Qt则因为出现年代较旧,采用的非标准的方式来实现信号、槽机制的。从gtk 2.14版本开始,gtk已经内置了GtkBuilder,取代原有的libglade实现界面和逻辑代码的分离,可以方便的载入界面描述文件(XML),不再依赖libglade。作为gtk最新的可视化界面设计工具Glade3,已经完全支持GtkBuilder了。所以我们现在就开始在Windows环境下的Netbeans中配置gtk、gtkmm的开发环境。

首先配置好Windows+Netbeans+MinGW(MSYS)。

下载Win32版本的gtk、gtkmm开发包(一般都给打包好了,含有二进制动态库、静态库、包含文件、文档等)并安装好,最好不要安装到Program Files这样的目录,直接安装到根目录下是最好的,避免空格等造成问题。根据gtkmm的建议,因为最新的gtk 2.18在Windows环境下好像会出现一些问题,所以稳妥起见还是用2.16的gtk以及gtkmm最好了。将gtk、gtkmm的bin目录分别加入到系统环境变量PATH中。

注意,安装glade3 for win32的版本已经内含了gtk完整开发包,就不需要再单独安装gtk开发包了。

在Netbeans中,通过“工具->选项”菜单对“C/C++”模块进行配置,关键是要配置好C/C++的包含目录,这样在编辑代码时,Netbeans才会去分析相应的头文件并给出正确的代码提示及分析,如下图所示:





这里要特别注意,图上红圈所表示的内容——针对gtk只需要配置C编译器的包含文件(头文件)目录,把gtk的include、include下的各一级子目录分别加入即可(一级子目录下的就不要加了),同时还要记住把gtk的lib下的各一级子目录内的include目录加入进来,切不可忘记!对gtkmm需要同时配置好C编译器及C++编译器的包含文件(头文件)目录,C编译器的包含文件(头文件)目录配置和刚刚说的gtk配置一样,C++编译器的包含文件(头文件)目录配置需要把gtk以及gtkmm的include、include下的gtk、gtkmm的各一级子目录分别加入,同时还要把gtk、gtkmm的lib下的各一级子目录内的include目录也加入进来,注意C++编译器的包含文件目录不仅要有gtkmm相关的include,还要有gtk相关的include。

创建一个C/C++项目,注意,这里要设置项目属性,如果是gtk程序,就设置“项目属性->C编译器->命令行->其他选项”,加入`pkg-config --cflags gtk+-2.0`;如果是gtkmm程序,就设置“项目属性->C++编译器->命令行->其他选项”,加入`pkg-config --cflags gtkmm-2.4`,如下图所示:



然后设置“项目属性->链接器->库”,进入库的详细设置,“添加选项->其他选项”,填入`pkg-config --libs gtkmm-2.4`,确定即可(如果是开发gtk程序,则填入`pkg-config --libs gtk+-2.0`),如下图所示:



这样的配置是非常必要的,否则尽管通过Netbeans的工具菜单去配置全局的CDT模块包含文件目录可以使Netbeans的代码编辑器正确找到并分析头文件,但MinGW编译器、链接器无法正确找到头文件及库文件,因此必须通过上述项目属性方式进行设置,就可以正常编译了。

最后还要说一句,这样编译出来的gtkmm程序在Windows环境下运行的时候会自动额外弹出一个命令行窗口,一般是gtk程序用于输出调试信息用的,默认就是这样,要想不显示这个命令行窗口,需要在给MinGW链接器(还是gcc或者g++)设置一个参数:-mwindows,这样就会告诉链接器最终生成一个符合Windows要求的窗口应用程序而不会弹出命令行窗口,如果不指定这个参数就会默认生成弹出命令行窗口的版本,关于-m参数,可以用gcc --target-help或者g++ --target-help来查看具体说明,其实就是制定目标平台啦。
分类:默认分类|回复:0|浏览:2404|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-28 05:13
©2005-2016 QTCN开发网 版权所有 Gzip disabled