




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows 下使用Eclipse开发C程序-Gtk+程序以及OpenCV程序仲志丹 v21 需安装的软件1.1 MinGW首先安装GCC基本编译工具MinGW。它是将GNU开发工具移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。 MinGW是从Cygwin(1.3.3版)基础上发展而来,但是用MinGW使用Windows中的C运行库。因此用MinGW开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行,而且也不一定必须遵从GPL许可证。这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库,而缺少POSIX支持,大多数GNU软件无法在不修改源代码的情况下用MinGW编译。到下载地址选择最新版本:/projects/mingw/files/Installer/mingw-get-inst/使用默认选项安装。安装在C盘根目录下后,还需要配置环境变量。“计算机-属性-高级系统设置-高级-环境变量”,编辑用户变量中的path,在后面添加“;C:mingwbin”。在cmd窗口中运行gcc命令应有如下显示:1.2 Gtk和GladeGtk是图形界面库,Glade是Gtk界面的快速开发工具。可以使用Glade_with_Gtk+一体化安装包。地址:/pub/GNOME/binaries/win32/glade3/3.6/本文将Gtk+安装在C盘根目录下。安装正确后在Windows的cmd窗口中分别运行pkg-config -cflags gtk+-2.0和pkg-config -libs gtk+-2.0后会有如下显示:这种方法安装后缺少libxml2-dev,下载后解压到Gtk根目录下。1.3 Eclipse CDTEclipse CDT是编程集成开发环境(IDE)。去eclipse官网下载解压,无需安装。但是运行此软件需要首先安装java运行环境(JRE),到官网下载安装最新版本:/technetwork/java/javase/downloads/index.html。2 GTK+开发方法2.1 新建工程打开Eclipse CDT,点击File-New-C Project,建立一个新的C工程。在弹出的选项窗口中:l Project Name中填入所希望的名称l Project Type选择Executable-Hello World ANSI C Projectl Tool Chain选择 MinGW GCC2.2 工程属性设置这一步主要是将开发所需的头文件以及库的相关信息设置到工程中。基本方法是人工一个个添加进去,另一种简单方法是利用Pkg-config插件自动管理。2.2.1 人工添加使用GTK库需要在编译和链接选项里添加很多库文件路径。具体方法如下。右键点击所建立的工程,在弹出菜单中选择Properties,弹出下面工程属性对话框。选择C/C+ Build-Settings,对编译链接进行设置。在Linux下可以使用pkg-config工具自动添加这些库,但是Windows下不支持,需要手动逐个添加。先设置编译选项,选择GCC C Compiler-Includes,把开发Gtk+所需的库头文件路径添加进去。即把pkg-config -cflags gtk+-2.0 libglade-2.0命令的运行结果一项项添加进去。再选择GCC C Compiler-miscellaneous,把-mms-bitfields选项添加在后面。再设置链接选项。选择MinGW C Linker-Iiberaries,把开发Gtk+所需的库文件所在路径添加进去,即C:Gtk+lib。然后把所用到的库文件名加进去,即pkg-config -libs gtk+-2.0 libglade-2.0命令的运行结果一项项添加进去。注意,输入的时候后面不能带有空格,否则眼看没问题,结果编译的时候会提示找不到对应的库文件。C:/Gtk+/lib glade-2.0 gtk-win32-2.0 xml2 gdk-win32-2.0 atk-1.0 gio-2.0 gdk_pixbuf-2.0 pangowin32-1.0 gdi32 pangocairo-1.0 pango-1.0 cairo gobject-2.0 gmodule-2.0 glib-2.0 intl -mms-bitfields C:/Gtk+/include/gtk-2.0 C:/Gtk+/lib/gtk-2.0/include C:/Gtk+/include/atk-1.0 C:/Gtk+/include/cairo C:/Gtk+/include/pango-1.0 C:/Gtk+/include/glib-2.0 C:/Gtk+/lib/glib-2.0/include C:/Gtk+/include/libpng12 C:/Gtk+/include/libglade-2.0 C:/Gtk+/include/libxml2 在编译和链接两处加入的东西总计:最后,符号查找设置。选择C/C+ Build-Discovery Options,按下图设置。2.2.2 使用Pkg-config插件自动添加头文件、库设置的另一种方法是安装最新的“Pkg-config support for Eclipse CDT”插件。1) 安装:主菜单:help-eclipse marketplace,安装Pkg-config。2) 使用:工程属性的C/C+ Build-Settings中可以看到Pkg-config页面,选择相应库即可。同时在新建工程时会出现基于GTK的模板,更加方便。2.3 Gtk+测试程序经过上述步骤后,已经完成了设置部分。下面输入一个测试程序:#include gint CallBackFun(GtkWidget *widget, GdkEvent *event, gpointer data)g_print(Delete Event!/n);return TRUE;void CallBackExit(GtkWidget *widget, GdkEvent *event, gpointer data)gtk_main_quit();int main(int argc, char *argv)GtkWidget *window;GtkWidget *box;GtkWidget *button;GtkWidget *button1;gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);box = gtk_hbox_new (FALSE, 0);gtk_container_add (GTK_CONTAINER (window), box);button = gtk_button_new_with_label(Hello World!);button1 = gtk_button_new_with_label(Quit!);g_signal_connect(G_OBJECT(button), clicked, G_CALLBACK(CallBackFun), NULL);g_signal_connect(G_OBJECT(button1), clicked, G_CALLBACK(CallBackExit), NULL);gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);gtk_box_pack_start (GTK_BOX(box), button1, TRUE, TRUE, 0);gtk_widget_show(button);gtk_widget_show(button1);gtk_widget_show (box);gtk_widget_show(window);gtk_main();return 0;编译、运行后得到下面结果:3 使用Glade快速界面开发工具3.1 使用Glade设计界面右键点击刚才建立的gtk_test工程,选择Copy。然后右键点击空白处,点击Past,输入新工程名。相对于重新建立一个新工程,这种方法可以把原工程的设置保留下来,无需再进行工程设置。验证无误后,打开Glade3软件绘制窗口。在主菜单“文件”中选择新建,在弹出的窗口中,注意选中“Libglade”,其它内容保持不变。选中后关闭此窗口。新建一个顶层窗口,窗口名设为“window”,“公共-可见”设为“是”。在window中放入一个vbox容器,然后把两个按钮“button1”和“button2”和一个标签“label”放入容器。两个按钮的Clicked信号操作句柄设置为缺省名称“on_button1_clicked”和“on_button2_clicked”。把这个文件命名为test.glade,保存在工程gtk_glade_test目录下。3.2 测试程序下面是c文件的源程序#include #include GladeXML *XML_MAIN=NULL;int COUNT = 0;G_MODULE_EXPORT void on_button1_clicked(GtkWidget *widget, gpointer user_data)char str100;GtkWidget * wgt;COUNT+;sprintf(str, %d, COUNT);printf(%sn, str);wgt = glade_xml_get_widget(XML_MAIN, label);gtk_label_set_text(GtkLabel *) wgt, str);G_MODULE_EXPORT void on_button2_clicked(GtkWidget *widget, gpointer user_data)char str100;GtkWidget * wgt;COUNT-;sprintf(str, %d, COUNT);printf(%sn, str);wgt = glade_xml_get_widget(XML_MAIN, label);gtk_label_set_text(GtkLabel *) wgt, str);int main(int argc, char *argv)GtkWidget * window=NULL;gtk_init(&argc, &argv);XML_MAIN = glade_xml_new(test.glade, NULL, NULL);glade_xml_signal_autoconnect(XML_MAIN);window = glade_xml_get_widget(XML_MAIN, window);g_signal_connect(window, destroy, G_CALLBACK(gtk_main_quit), NULL);gtk_main();return 0;注意,信号回调函数前需要加入“G_MODULE_EXPORT”,否则程序运行时会找不到回调函数。编译、运行后得到下面结果:4 开发OpenCV程序4.1 安装OpenCV首先下载opencv windows的最新版:/projects/opencvlibrary/files/opencv-win/当前版本为OpenCV-2.4.2.exe。解压到C盘根目录下,无需安装。其次,把动态库的路径“C:opencvbuildx86mingwbin”设置到windows环境变量PATH中。4.2 测试程序建立一个基于MinGW的C工程。然后把“C:opencvsamplesc contours.c”的内容拷贝到C程序中。接下来对工程属性进行设置。首先设置编译选项:进入C/C+ Build-Settings-Tool Settings,在GCC C+ Complier-Includes中,把Opencv的头文件目录“C:opencvbuildinclude”加入到Include paths (-I):中。然后在“MinGW C Linker - Libraries”中设置链接选项。库文件在“C:opencvbuildx86mingwlib”中,把此路径加入到Library search path (-L)中。根据需要添加所需的库到Libraries (-l)里面。,。4.3 运行程序编译后,找到相应可执行文件即可运行。(在Eclipse环境中运行时看不到执行结果,原因未知)5 讨论5.1 中文显示问题1、 编辑区显示乱码。和源程序的保存格式有关。如果要最大程度的支持中文输出,则最好使程序文件使用UTF-8编码。然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Window
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025“才聚齐鲁成就未来”山东省机场管理集团威海国际机场有限公司社会招聘48人考试历年参考题附答案详解
- 2024-2025学年高职单招高频难、易错点题及完整答案详解(夺冠)
- 2025年度南宁市人力资源和社会保障局招募南宁市本级第一批笔试备考试题有答案详解
- 2024-2025学年度法律职业资格考试题库试题附完整答案详解【名师系列】
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》通关题库附参考答案详解(基础题)
- 2025年安康旬阳市直教育单位教师遴选考试试题(附答案)
- 2025康复医学治疗技术副高级职称高频难、易错点题及参考答案详解(巩固)
- 2025年安徽省阜阳市辅警招聘考试题库及答案
- 2025年中共大庆市萨尔图区委政法委员会公益性岗位招聘(2人)模拟试卷及参考答案详解一套
- 2025年杭州市公安局滨江区分局招聘27名警务辅助人员笔试高频难、易错点备考题库带答案详解
- 2025汽车驾驶员(技师)考试题及答案
- 轻资产运营模式下“海澜之家”财务绩效评价研究
- 巴基斯坦国家介绍
- 支付外包管理办法
- 2023版《思想道德与法治》(绪论-第一章)绪论 担当复兴大任 成就时代新人;第一章 领悟人生真谛 把握人生方向 第3讲 创造有意义的人生
- 热力学发展史概述讲课稿
- 教学配套课件:二维动态图形设计基础
- 预防电信诈骗网络诈骗
- 督脉灸参考课件
- 建筑节能-课件
- Unit5DevelopingideasThesecretlanguageofplants课件-高中英语外研版(2019)选择性必修第一册
评论
0/150
提交评论