Dev-Cpp/Mingw32 环境介绍(7) (转)
第十一章 在Dev-Cpp中创建自己的工程
我想,各位一定会觉得在使用Dev-Cpp时非常吃力,因为通常使用C/C++语言总是要使用一些其他开发工具,比如GTK+ wxWindows(现在叫wxWidget 我还是刚知道已经改名了)。使用这些工具生成一个工程总是要先设置参数,而如果每生成一个类似工程都要设置一次工程参数,那么我想这太麻烦了吧。好在我现在可以让你的Dev-Cpp新建你自定义的工程。这里,我们要手工生成,所以要比用软件生成更直接,更灵活。
最开始,我们要知道Dev-Cpp是如何创建新的工程的。打开Dev-Cpp的安装目录。我想各位一定会有一个名为 Templates 的目录开启它,我们就能找到Dev工程的秘密了。其实在Dev中,每一种工程都是一组文件组成的。这些文件描述了工程的设置参数和初始化工作。这些文件包括:
工程名.template
程序文件.txt
(图标.ico) 如果需要的话
下面我们废话少说,就开始写一个看看。
最开始我们先来写template文件
template文件是有三组标签组成的,其中[Template]介绍了工程在新建工程对话框的状态。[UnitX]X是一个数字从0开始,这里存放了一个工程文件的参数。[Project]是对文件属性的设置,比如编译参数等。
下面我就写一个用于GTK+的工程文件,我现在假设你已经安装了GTK+的开发库。并且安装在(GTK_DEV)路径下(这里的括号,包括括号都代表你的安装路径)。还有,以#号开始的内容为我的解释,在正式编写时请除去。
[Template]
#下面时版本信息,既然是自己使用,何必用那么多版本,我这里设置为1
ver=1
#工程的名字,会在对话框中出现
Name=GTK+
#工程的简单介绍
Description=Create a GUI using GTK+.
#所处的位置,也就是选项卡,如果是Basic就会在第一页出现。这里是GUI
Catagory=GUI
[Unit0]
#C语言时的工程文件名
CName=main.c
#C++语言时的工程文件名
CppName=main.cpp
#C语言时,该工程文件的内容
C=GTK.txt
#C++语言时,该工程文件的内容
Cpp=GTK.txt
[Project]
UnitCount=1
#这个参数会影响该工程在对话框中的图标
Type=0
#如果只能使用C++就设置为1
IsCpp=0
#Lib文件的目录(这里我只能使用一个目录,多个就不行了)
Libs=(GTK_DEV)\lib
#下面是编译器参数 我们Include目录可以在这里用-I来添加,添加多个
Compiler=-mms-bitfields -I"(GTK_DEV)\include\gtk-2.0" -I"(GTK_DEV)\lib\gtk-2.0\include" -I"(GTK_DEV)\include\atk-1.0" -I"(GTK_DEV)\include\pango-1.0" -I"(GTK_DEV)\include\glib-2.0" -I"(GTK_DEV)\lib\glib-2.0\include"
#下面是连接器参数 我们的Lib目录可以在这里使用 -L来添加,添加多个
Linker=-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
Name=GTK Project
下面我们写一个GTK.txt如果没有,就会在新工程中创建一个空白文档。这个在Unit0中设置了。
#include <gtk/gtk.h>
static void destroy( GtkWidget *widget, gpointer data )
{
gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"GTK+ Programe");
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
保存上面两个文件到 Templates 文件夹中。重新启动Dev-Cpp你就会在新建工程对话框中的GUI选项卡中看到自己的工程GTK了。兴奋吧。
如果你设置都正确,那么你的工程就能够正常使用了。有关GTK+安装版本的问题,请看 《L&W开发者协议》。
Good Luck
第十二章 在Dev-Cpp中生成自己的包
上一章中,我们知道如何在Dev-Cpp中安装自定义工程,下面我就来介绍一下如何制作包文件。不过这里我的包不能制作成像Dev-Cpp发布的那种,可以用包管理器直接安装。因为我暂时还没有找到可以压缩bzip2的压缩程序(在win32下的)。不过先介绍一下包文件的组成,你们可以用复制的方式安装包文件嘛。
包文件的描述文件在 Packages 目录下。描述文件为 包名.entry
下面我简单写一个。
[Setup]
AppName=包名
AppVersion=版本
Description=描述
Url=地址
[Files]
相对于安装目录的文件如bin/include/studio.h
这下够简单吧。其他的只要自己按照包描述的做就可以了。
本章内容未全,待续。如果以后能找到压缩bzip2的方式在继续补完。
第十三章 Dev-Cpp包制作补完篇(转)
首先,我们先来看看Dev-Cpp的包。Dev-Cpp的包有如下的几个特点,当然我是从结构上来说的。
文件名为 包名.DevPak
这个是打包好的包文件,可以直接发布给Dev-Cpp安装,只要PackageManager就可以很好的安装了。快速,安全,绿色。其实从结构上来看,它是一个bzip2压缩文件,我们可以用winrar或者其他支持bzip2格式的压缩软件打开看,我们会看到里面有一个和包名相同的文件,但是没有后缀名,其实这是一个tar压缩文件。我们在打开。在开启层层目录后,我们会看到最基本的几个文件。
包名.DevPackage
这个是包的配置文件,其中包含了很多包的信息,诸如文件的位置,安装后是否重新启动,开始菜单中的内容,许可证的位置等等。
License.txt
这个通常我们都要有,因为这个就是许可证,如果我们使用GPL(觉得这个很不错)那么我们就到GNU的网站把这个许可证的内容复制到这个文件里好了。如果是其他的许可证也可以这样做。
readme.txt
这个是说明文档。里面有你对包的说明哦。在这里可以大大发挥你的文学才华。如果是鲁迅先生,一定会在这里写“横眉冷对千夫指,俯首甘为儒子牛”。
上面的这三个主要文件不会在安装后出现在任何目录里除非你这样设置。
好了知道了包的结构,那么下面我就来说说如何制作包。
由于发现bzip2和tar在win32下很不容易使用,为了各位的考虑所以我就使用了Dev-Cpp的一个工具来制作。希望各位能够谅解。
首先我们可以到Dev-Cpp的网上上下载一个名叫PackageMaker.DevPak的文件。看名字我们就能知道这个就是Package的制作程序。
下载地址 http://www.freewebs.com/gstudio/DOWNLOAD/PackMaker.zip
下载后直接运行压缩包内的文件就可以了。我我们现在就来制作一个包文件吧。
首先在你的计算机上建立一个Package的文件夹作为我们制作的环境,这是我个人的习惯,便于以后管理。
然后运行PackageMaker。会出现一个对话框。其中
Create a new package 选项是制作一个新的包
Open an existing package 选项是打开一个已有的包文件。当然这个包文件的后缀名为.DevPackage也就是没有打包的。
我们这里因为没有制作过,所以就选择新建一个。
然后我们会看到一个界面。如果窗口太多,建议你找找。一定会有的。
好,我们现在开始写一些参数给包文件。我这里就不对那些参数做解释了。各位应该明白这些参数的意思吧。
Description 是你在安装程序最开始看到的内容。
Reboot system after install 是问你是否在安装后重新启动系统。
其他的我就不一一介绍了。
接下来我告诉你们怎么让Package包含文件。
首先在刚才的文件夹里建立一个file文件夹。然后我们就在这个文件夹中建立一些文件夹,如include,lib等等。再在这些文件夹中添加你要添加的文件。然后,我们现在开始点击 Add Directory 按钮添加目录。上面选择我们建立的file目录,下面选择<app>\。其中<app>\是在Dev-Cpp的目录中,<sys>\是在系统目录中。
设置好后,我们就保存。并点击File->Build就可以在Package目录中生成包文件了。
我这次就介绍到这里,其实多尝试几次就可以成功的。
Good Luck