2011年2月26日 星期六

【轉貼】NetBeans配置MinGW、Qt编译环境

【轉貼】NetBeans配置MinGW、Qt编译环境

 

前言
昨天在Scala群和水如清聊起C,谈及NetBeans下配置MinGW的环境问题。因为2个月前,配置本机MinGW的时候,在MinGW的 opensource站点找到一个名叫MinGW-5.1.6.exe的打包安装的工具,当时安装非常简易,全不是早年那般痛心疾首或cygwin那样漫 长的等待。于是我很顺口的说,配置MinGW十分简单。当时朋友提及MinGW的用户体验真差,然后示意只下到了一个叫做mingw-get的东西,并询 问相关的操作指令,我感到好奇,遂打开MinGW的opensource站点,发现那个打包安装的文件真的被K掉了。




冤枉啊,打开以下地址:http://www.mingw.org/wiki/MinGW,在文章的底部,可以看到他说:
Download
It can be download from Sourceforge's MinGW project page after you click the "Files" link. The package's name is MINGW-NNN.exe, (where "NNN" represents the current version number, e.g. version "5.1.6" is distributed as "MinGW-5.1.6.exe").;
截图为证:
半年前我也是受此指引才找到这个MinGW-5.1.6.exe的文件的,以下是我本机该文件以及该文件运行后的状况:
呃,由于最近无法忍受win7,重装了winxp,所以正好需要重装本机的MinGW环境,于是打开MinGW的站点看了一下mingw-get的用法,其实很简单。
配置MinGW环境
  1. 在C盘(别的盘也可以,不过mingw-get会自动安装到你的C盘,安装完了拷贝回来也可以)建立C:\MinGW目录。
  2. 下载mingw-get,解压,将其中的bin等目录放到C:\MinGW目录下,系统路径添加C:\MinGW\bin。
  3. 执行:mingw-get install gcc g++ gdb mingw32-make,具体install支持的包名如下:
    g++ (C++ compiler)
    g77 (Fortran 77 compiler)
    ada (Ada compiler)
    java (Java compiler)
    objc (Objective-C compiler)
    mingw32-make (GNU make)
    gdb (GNU debugger)
    msys-base (MSYS shell environment)
    java的包很大,如果网速不快,日后再安装亦可。msys-base没啥作用,等会需要单独安装msys的,所以现在可以忽略不计。
  4. 等待安装结果,注意,中途碰到:mingw-get: *** ERROR *** Get package的,最好回头重新执行一下mingw-get install相关的包,由于互相依赖的包不多,肉眼也能看出其中的关联,比如:
    mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/w32api-3.14-mingw32-dev.tar.gz?download: download failed
    mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/binutils-2.20.51-1-mingw32-bin.tar.lzma?download: download failed
    mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-3.tar.gz?download: download failed
    这个是gcc相关的包,所以回头我重新执行了mingw-get install gcc,对于已经成功安装的,他不会重新下载的,所以不用怕失败 
  5. 接着,安装MSYS,这是一个极小虚拟机,netbeans里面make要用到他。下载地址,下载完后,双击打开,里面会问你MinGW安装所在的路径,输入C:\MinGW即可。注意,这里不让复制,所以别给这名字起的太复杂。
  6. 打 开NetBeans,激活C\C++组件(开个相关的项目),然后,点击“工具->选项->C\C++分页->生成工具”,注意,如果 你成功安装MinGW,Netbeans一般都会自己感知MinGW安装的路径所在。除了“Make命令”的路径,需要你单独配置一下,请指定你MSYS 安装的路径(C:\MSYS\1.0\bin\make.exe),如下图: 注:由于C盘放了Win7,所以我的xp装在E盘,所以你看到一堆路径都是基于E盘的。
OK,大功告成,至此,MinGW的环境已经搭配完成,你可随意编译你写过的C\C++代码了。

配置Qt的环境
这里向一位朋友道歉一句,那天有朋友问起Qt下载的版本问题,我告诉他下载Qt opensource MinGW版本,这个其实是依赖于本机的MinGW环境的。我们刚才安装的G++版本是3.x的版本,而Qt需要4.x的版本,所以没有该版本的人,应该 要下载Qt SDK Window版本,地址:http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource- 2010.04.exe。由于时间关系,我直接使用本机已经存在的2010.01.exe。

  1. 打开安装文件,中间选择组件的过程,你会看到勾选MinGW的选项。如下图:

     一路Next下去吧,1G多...
  2. 安装完毕,打开NetBeans的工具->选项->C\C++,找到左侧列表的添加按钮(添加Qt的编译工具集合),打开。
  3. 注意,基目录,选择的路径,应该是Qt文件夹下的MinGW目录下的bin目录,如我本机,Qt安装在E:\Qt,则相应的,为:E:\Qt\2010.02.1\mingw\bin,当选好路径以后,他会自动识别该编译器的工具集合,你只要改改名字即可,如下图:

    点 击确定,并打开新配置的工具集合,看到右侧的属性,检查Make命令是否使用的是之前安装MSYS的make文件,并找到QMake命令,这个是针对Qt 编译专用的,具体文件在:E:\Qt\2010.02.1\qt\bin\qmake.exe(注意,不是E:\Qt\2010.02.1\bin目录 下),配置如下图:

    点击确定,完成工具集合配置。
  4. 在系统变量中,增加如下设置:
    QTDIR: E:\Qt\2010.02.1\qtPATH : %QTDIR%\bin设置好后,重启Netbeans,这个是比较啰嗦的地方,Path变量貌似是由Netbeans初步运行时就初始化的。
  5. 创建一个C++的Qt项目,注意,在创建项目时,选择工具集合为你刚才新配置的Qt_MinGW,如下图:

    敲入如下代码:
    1. #include   
    2. #include   
    3. #include   
    4. #include   
    5.   
    6. int main(int argc, char *argv[]) {  
    7.       
    8.     QApplication app(argc, argv);  
    9.   
    10.     QWidget *widget = new QWidget(NULL);  
    11.   
    12.     QVBoxLayout vbox(widget);  
    13.     vbox.setAlignment(Qt::AlignCenter);  
    14.   
    15.     QLabel *label = new QLabel("hello Qt");  
    16.     QPushButton *homeBtn = new QPushButton("Go Home Now");  
    17.   
    18.     QObject::connect(homeBtn, SIGNAL(pressed()), widget, SLOT(close()));  
    19.   
    20.     vbox.addWidget(label);  
    21.     vbox.addWidget(homeBtn);  
    22.       
    23.     widget->show();  
    24.     return app.exec();  
    25. }  
     运行吧,不错不错,为啥C++编译能如此快呢?Java和Scala编译好像狗爬一样,nnd。运行结果如下图:
     
其实我个人比较喜欢在Netbeans下写C\C++,感觉比较舒适,可能比较懒...
Qt Jambi的小问题
顺便说说Qt Jambi的安装,Qt Jambi是Java的移植版,实现了Qt大量的类库,也是Java下做GUI的一个不错的选择。目前Qt Jambi跟进到Qt 4.6版本,还算和官方的同步比较紧密。我目前手头有个项目是用Scala + Qt Jambi 4.5做的,但是推荐大家还是用4.6比较好,一些bug已经修复,而且还有4.6的一些新东西。可到此地址去下载
下载最新版本解压,里面有个demo,可以运行看看,不过其实这个示例远没有Qt自带的那套demo有吸引力。在开发的时候,只要引入:
qtjambi-util-4.6.x.jar
qtjambi-4.6.x.jar
qtjambi-win32-msvc2005-4.6.x.jar
三个文件即可。其中,qtjambi-util是4.6以后才增加的一个包。
注意,你本机应该安装了vc2005的补丁,很明显他用的msvc2005编译的。
Scala plugin for netbeans补丁在哪里?
这是个很小很小的问题,但发现经常有人问,如何找到他呢?
打开scala-lang.org首页,点开导航:Software -> IDE and Editor plugins,看到页面的“Scala Plugin for NetBeans”部分,看到“Team: Caoyuan Deng”文字了吗?OK,打开此Caoyuan Deng的连接,会进入他的博客,他博客置顶的一篇文章就是关于scala插件的介绍,可能Deng Caoyuan在忙,所以匆匆的在opensource发布了nb6.9的插件以后,一直都没什么消息了。scala netbeans plugin目前来说,语法高亮的性能还是有点问题,编译的速度也不太理想。
贴出opensource的地址:http://sourceforge.net/projects/erlybird/files/
Deng caoyuan其实是erlang和scala plugin for netbeans的作者。

 

沒有留言:

張貼留言