我的开发工具与环境( g++, Eclipse , qt-4.4.3 )

来源:互联网 发布:网页版淘宝怎么开微淘 编辑:程序博客网 时间:2024/05/17 03:25

-更新记录--
2009-4-24  转载一篇介绍多个QT4的IDE的,另外QT4.5.1及QTCreator1.1.0昨天发布了,正在下载中
--更新预告--
    将加入使用Code:Blocks开发QT程序的部分
    将加入最新学习QCreator1.0的体会
 
文章摘要:
1,windows,linux平台下安装使用eclipse + QT4.4.3开发环境
2,windows,linux新建project时的配置(不使用QT预置项目类型,而是手工配置)
 
 
正文:
使用Eclipse开发平台的原因: 
由于要在windows/Linux上开发,希望统一开发工具. 
以前开发QT3时,界面开发使用QT自带的designer, 程序也可以在designer里面全部完成.有时也用一些轻量级的编辑工具,如windows下FlexEdit(www.xuyibo.org下载,相当不错,尤其是自动分析C++源文件中的类,方法,快速导航功能极方便),Linux下的vi(不论何时,VI是不能忘记的,尤其是出差时,linux/unix下唯一能保证有的就是它了). 
后来使用SlickEdit开发工具,分析代码与写代码都相当方便.与QT designer配合使用真的是很方便. 

Qt4的出现,qt designer的功能大大减低,需要新的集成开发工具.在Windows下,vs2005+Visual Assist X + QT也是相当方便的,只是无法跨平台.所以趁着学QT4的,试试eclipse集成开发工具. 


一 Windows平台安装 (Eclipse , c++, qt4, fortran) 
1.1 所需文件: 
DEV-CPP4.9.9.2.exe --> 要用其集成的MinGW开发环境(make and g++)    (20081204,Code::Blocks更强大) 
qt-win-opensource-4.4.3-mingw.exe --> QT的开源版本 
eclipse-cpp-ganymede-SR1-win32.zip  --> 集成了CDT插件的Eclipse 
qt-eclipse-integration-win32-1.4.0.exe  --> 把QT集成到Eclipse中去的. 

1.2 安装过程 
DEV-CPP4.9.9.2.exe安装到d:/qt/dev-cpp目录 
qt-win-opensource-4.4.3-mingw.exe安装到d:/qt/4.4.3目录 (安装过程需要指定MinGW的位置,把默认的c:/MinGW改为d:/qt/dev-cpp即可) 
eclipse-cpp-ganymede-SR1-win32.zip 直接解压到d:/eclipse即可.(需要安装jre环境后才能运行,本人用1.6) 
qt-eclipse-integration-win32-1.4.0.exe  安装过程中需要指定eclipse与MinGW的位置,按上面的实际安装目录修改. 安装到d:/qt/trolltech/eclipse 

1.3 编辑运行QT4程序 
1.3.1 命令行编译与运行QT程序,有三种方法: 
法一: 需要通过"开始"->"程序"->"Qt by Nokia v4.4.3 (OpenSource)" ->"Qt 4.4.3 Command Prompt" 打开DOS命令行窗口,再编译运行; 
法二: 打开任意一个Dos窗口, 执行一下 d:/qt/4.4.3/bin/qtvars.bat ,设置相应环境变量. 
法三: 修改系统环境变量: 
  新建环境变量 QTDIR,值为d:/Qt/4.4.3 
  新建环境变量 QMAKESPEC , 值为 win32-g++ 
  修改原path变量,在原值最前面增加d:/Qt/4.4.3/bin;D:/qt/DEV-CPP/bin;%SystemRoot%/System32; 
源代码编辑工具可以使用dev-c++, editplus, FlexEdit等 
1.3.2 使用Eclipse编辑,编译,运行 
  这里要注意, 安装qt-eclipse-integration-win32-1.4.0.exe自动生成的开始菜单项"Qt Eclipse Integration v1.4.0" -> "Start Eclipse with MinGW" 有问题. 需要编辑d:/qt/trolltech/eclipse/start.bat,把QT需要的环境变量设置语句加入,完整的如下: 
echo Setting up a MinGW/Qt only environment... 
echo -- QTDIR set to d:/Qt/4.4.3 
echo -- PATH set to d:/Qt/4.4.3/bin 
echo -- Adding D:/qt/DEV-CPP/bin to PATH 
echo -- Adding %SystemRoot%/System32 to PATH 
echo -- QMAKESPEC set to win32-g++ 

set QTDIR=d:/Qt/4.4.3 
set PATH=d:/Qt/4.4.3/bin 
set PATH=%PATH%;D:/qt/DEV-CPP/bin 
set PATH=%PATH%;%SystemRoot%/System32 
set QMAKESPEC=win32-g++ 

echo Starting eclipse... 
call "D:/eclipse/eclipse.exe" -clean 


  启动eclipse后, "File" -> "new" -> "other" ,选择QT下面的某一个项目,如"QT Console project"或"QT GUI project", 然后指定项目名, 就可以使用菜单"project" ->"build all"进行编译了. 默认情况下生成debug格式. 
  运行,需要生成运行配置. "run" -> "run configurations..."  , 双击"C++ local application"在下面生成一个新的配置"new_configuration", 在右侧点"project"后的"browse..."选择刚才新建的项目名, 点"c/c++ application"后"search project..." 找到可执行文件, 然后就可以点击"run"运行了. (注意, 如果上面新建的是qt console project, 需要在建立项目后, 点"project" ->"properties" , 双击左侧"c/c++ Make project" , 然后在右侧选择"binary parser"标签, 选中"elf parse"与"pe windows parser". 否则在"search project..." 时会找不到可执行文件. ) 
   

1.4 让eclipse支持fortran: 
下载photran40b4-master.zip 
启动eclipse, 菜单"help" -> "software updates" ,选中"Available Software"标签, "Add Site..." , 在弹出的对话框中点"Archive...", 找到硬盘上的photran40b4-master.zip,按提示完成安装,重启eclipse,就发现在File,New时多了对Fortran的支持. 


==================== 
二 Linux平台安装 (Eclipse ,c++, qt4, fortran) 
1, 安装JDK1.6.bin,并配置环境变量. 
   安装目录/data/opt/jdk1.6.0_01 
   修改/etc/profile, 在最后添加java的环境变量: 
JAVA_HOME=/data/opt/jdk1.6.0_01 
JAVA_BIN=/data/opt/jdk1.6.0_01/bin 
PATH=$PATH:$JAVA_HOME/bin 
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export JAVA_HOME JAVA_BIN PATH CLASSPATH 

2, 安装eclipse 
   解压eclipse-cpp-ganymede-SR1-linux-gtk.tar.gz到/data/opt/下 
3, 编译安装qt 
    $tar jxvf qt-x11-opensource-src-4.4.3.tar.bz2 
    $cd qt-x11-opensource-src-4.4.3 
    $./configure -prefix /data/opt/qt-4.4.3  -no-libtiff 
    $make && make install 
    $vi /data/opt/qt-4.4.3/setqt4 (以后在需要编译QT程序时,执行source setqt4就可以设置好环境变量)
       export QTDIR=/data/opt/qt-4.4.3 
       export PATH=$QTDIR/bin:$PATH 
       export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 
4, 让eclipse集成QT 
    $cd /data/opt/eclipse 
    $tar zxvf qt-eclipse-integration-linux.x86-gcc3.3-1.4.0.tar.gz 
5, 让eclipse集成fortran支持,方法与windows下相同, 使用的文件也相同 

6, 安装apache2,mysql5,php5,svn服务器 
7, 安装slickedit, matlab7 

=====windows平台,eclipse中编写QT程序==2008-10-13===== 
一:在eclipse中编写一般c++程序 
1, file->new ->other ->展开C++下的C++ Project ->不选中"Show project types and toolchains only if they are ssupported on the platform" ->Project Type="Executable"下的"Empty Project", ToolChains="MinGW GCC" 
2, 编写文件或导入现有文件(File -> import ->General 下的 File system) 
3, projects -> properties, 展开c/c++ Build,settings,在右侧tab页中选中"Binary Parsers", 应该有两项是选中的"PE Windows Parser"与"cygwin PE Parser" (默认生成的未选中"cygwin PE Parser"项,造成在下一步生成运行配置时无法自动找到exe) 
4, 生成运行配置. "run" -> "run configurations..."  , 双击"C++ local application"在下面生成一个新的配置"new_configuration", 在右侧点"project"后的"browse..."选择刚才新建的项目名, 点"c/c++ application"后"search project..." 找到可执行文件, 然后就可以点击"run"运行了. 

二:导入有pro文件的qt项目到eclipse中 
file -> import -> 选择qt下qt project ->选择一个QT的项目文件(xx.pro),就生成一个与原project同名的eclipse项目.但"生成运行配置"还是要做的,之后就可以编译与运行了. 

三,一般C++ Project如何增加对QT的支持 
file, new, c++ project => Project type选择"Executable"下的"Empty Project",不选中"Show project types and toolchains only if they are ssupported on the platform",然后在右侧的"Tool Chains"选择"MinGW GCC",然后点击"next", 在弹出的对话框中点击"Advanced settings",展开"c/c++ build" -> "settings",在右侧展开"gcc c++ compiler","Directories", 右侧"include pathes" , 浏览添加d:/Qt/4.4.3/include
展开"GCC C++ Linker","Libraries",在Libraries(-l)中添加三次,分别添加QtCored4, QtGuid4, qtmaind; 
在"Library search path"添加d:/qt/4.4.3/lib; 
新建Source File, 输入代码,就可以正常编译了. 
测试代码: 
#include <QtGui/QApplication> 
#include <QtGui/QPushButton> 
int main(int argc, char *argv[]) 

    QApplication app(argc, argv); 
    QPushButton hello("Hello world!"); 
    hello.resize(100, 30); 
    hello.show(); 
    return app.exec(); 

测试代码二: 
/* 
* myclass.h 

*  Created on: 2008-10-14 
*      Author: lj 
*/ 
#ifndef MYCLASS_H_ 
#define MYCLASS_H_ 
#include <QtCore/QString> 
#include <QtCore/QObject> 
class MyClass : public QObject 

public: 
MyClass( const QString& text, QObject *parent = 0 ); 
const QString& text() ; 
void setText( const QString& text ); 
int getLengthOfText() ; 
private: 
QString m_text; 
}; 
#endif /* MYCLASS_H_ */ 


/* 
* myclass.cpp 

*  Created on: 2008-10-14 
*      Author: lj 
*/ 
#include "myclass.h"   
MyClass::MyClass( const QString &text, QObject *parent ) : QObject( parent ) 

  m_text = text; 

const QString &MyClass::text() { return m_text; } 
void MyClass::setText( const QString &text ) { m_text = text; } 
int MyClass::getLengthOfText() { return m_text.size(); } 

/* 
* main.cpp 

*  Created on: 2008-10-14 
*      Author: lj 
*/ 
#include "myclass.h"   
#include <QtCore/QtDebug>   
int main( int argc, char **argv ) 

  QObject parent; 
  MyClass *a, *b, *c; 
  a = new MyClass( "foo", &parent ); 
  b = new MyClass( "ba-a-ar", &parent ); 
  c = new MyClass( "baz", &parent ); 
  qDebug() << a->text() << " (" << a->getLengthOfText() << ")"; 
  a->setText( b->text() ); 
  qDebug() << a->text() << " (" << a->getLengthOfText() << ")"; 
  return a->getLengthOfText() - c->getLengthOfText(); 


至此,在windows平台上编译运行QT4程序的设置已经完成,后面就是实际的编程了. 

=====Linux平台,Eclipse开发Qt4程序====== 
1, $source /data/opt/qt-4.4.3/setqt4 设置环境变量 
  • export QTDIR=/data/opt/qt-4.4.3 export PATH=$QTDIR/bin:$PATH
  • export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 
    2,然后启动eclipse 
    3, 新建项目,类型为C++ 下“C++ Project"  => project type = "executable"下"Empty Project"  ,  Toolchains="Linux Gcc" =>点Next =>点"Advanced settings"  => 展开"c/c++ build" -> "settings",在右侧展开"gcc c++ compiler","Directories", 右侧"include pathes" , 浏览添加/data/opt/qt/4.4.3/include;   =>  展开"GCC C++ Linker","Libraries",在Libraries(-l)中添加两次,分别添加QtCore, QtGui ; ==> 在"Library search path"添加/data/opt/qt/4.4.3/lib 
    4, 新建Source File, 输入代码,就可以正常编译了. 
    5,可能问题: 
      5.1 如果在进入eclipse前,没有设置环境变量LD_LIBRARY_PATH,则项目能编译,但运行时提示找不到qt的动态链接库而失败。 
      5.2 一般教材上写文件包含是 #include <QtDebug>,但由于上面我们添加的include中只添加了qt下的include这一级目录,没有添加下面的子目录,所以写代码时要自己根据库文件所在子目录,添加所属包名,即变为#include <QtCore/QtDebug>, 否则在编译时会提示找到头文件。 
      5.3 第三步只是演示了如何从一般c/c++项目,通过添加配置而变成支持QT,实际开发过程是,在新建项目时,可以选择QT下的各种QT项目(如Qt Console Project, Qt Gui Class, Qt Gui Project, Qt Resource File),或Qt Designer下的Qt Designer Form项目。这样就不需要自己添加相应include与lib.更方便快捷! 

    =====下面转贴一篇====== 
    QT和eclipse的集成很简单,安装集成包以后设置一下qt的bin目录和include目录即可,CDT中 会新增qt类型的项目。 
    QT和eclipse的集成以后,最大的好处就是可以使用qt带的可视化设计工具,采用的是类似于XUI的做法,很清爽。 
    和习惯的vs,netbean做法有些区别, 简单记录一下。 

    1. 每增加一个ui表单或者对话框类会生成如下文件 
       *  一个对象类cpp文件,一个对象类头文件 
         而在每一个对象类中会自动增加一个ui类的声明,可以用此来引用包含的ui元素 
            Ui::AddDialogClass ui; 
       *  一个"ui_对象名.h" 格式的头文件 用来保存在designer中增加的元素,  这部分应该不要手工修改。这部分应该向netbean学习,应该设置为只读。 
       * 一个对象.ui文件 Form file,文本类型用来描述对象设计布局。双击可以打开设计器。注意:Form file文件必须保存以后才会生成上一个ui头文件. 

    2. 事件处理, 在一个表单内可以使用宏直接定义,不需要使用connect进行连接 
    比如在头文件中申明 
        private slots: 
            void on_addButton_clicked(); 
      则此slots会自动对应到addbutton的 clicked事件,依靠的是名字规范。 
      在ui头文件中可以找到这样的代码 
        QMetaObject::connectSlotsByName(AddressBookClass); 
      比单纯手写代码简单一些。 

    3. 事件处理也可以使用edit signal和slot 编辑器来实现可视化的事件关联 
      方法是拖拽一个对象的引导箭头到另外一对象上,选择要关联的signal。 

    4. QT中每个项目有一个.pro文件,负责项目内的文件资源汇总管理。在eclipse中新增source文件时要记得将文件加人pro中。可以以可视化的方式进行管理,比较简单。 
       
    5. 其他 
         * 在编辑状态 用ctrl+拖到可以复制对象,shift多选 
         * layout可以多重嵌套,这和swing不同,不过更好用。 可以选择几个元素以后右键设定这组元素的layout。 元素之间可以用spacer来控制距离,很好用。 
         * 属性编辑器有点弱智,居然不能ctrl+ v 必须用鼠标右键 

    整体感觉: 
         *  ui布局设计方面比较灵活,比netbean和vs都好用。 
         *  事件处理还是稍有点麻烦,不能直接可视化生成,在头文件和cpp文件中手工加代码还是有点不爽。 
         *  系统比较稳定。就是编译有点慢。 
    ============= 



    转一篇: 
    http://huangbiao00.spaces.live.com/Blog/cns!FDDCD947AE5B2C06!381.entry 
    设置Eclipse3.3.2 + MinGW + CDT4.0.3 + Qt4.3.4
    1. 下载Eclipse3.3.2
  • EclipseHelp->Software Update安装CDT
  • 注意,这时,CDT中的C++ Project 并不支持MinGW. 选择“show all tool chain”和选择MinGW,新建“Makefile project”,然后点击完成.
  • 新建一个C++文件,如 main.cpp
  • Set project properties: 
                     C/C++ Build: 选中 “Generate Makefiles automatically”                  C/C++ Build->Tool chain editor: select tools->                  左边是GCC C++ Linker,右边是MinGW C++ Linker.
  • 现在就可以Build工程了,然后Run as Local C/C++ Application.
  • 至此,CDT成功的安装设置

    设置Eclipse编写Qt程序
    1. 设置好Eclipse, CDT, MinGW
  • 新建“C++ Makefile project + MinGW”,下一步
  • Advanced setting...
  • C/C++ Build->Builder Setting: 
                     Build command: make -f Makefile.Release                  注意:这里不要选中普通C++ Makefile project的“Generate Makefiles automatically”选项.                  因为QtMakefile文件使用qmake -projectqmake来生成.
  • C/C++ General->Paths and Symbols: 
                     Includes:加入Qt安装目录下的include目录[include/QtGui],应用,完成.
  • 新建一个C++文件,写入Qt程序,如 
    #include<QtGui/QApplication> 
    #include<QtGui/QPushButton> 
    int main(int argc, char *argv[]) {                  
               QApplication app(argc, argv); 
               QPushButton *button = newQPushButton("Button");                  
               button->show();                  
                button->setWindowTitle("Das ist Button");                  
                QObject::connect(button, SIGNAL(clicked()), qApp, SLOT(quit())); 
                return app.exec(); 
    }
  • 从命令提示行进行Qt的工程目录,使用qmake -project qmake生成Makefile文件(我们将要使用其生成的Makefile.Release文件).
  • eclipse中点击:project->build
  • 在左边的工程导航栏中在工程上右键:Run as Local C/C++ Applicatoin
  • 不出意外,Qt程序应该可以运行了,会弹出含有一个按钮的窗口
                     最关键的是4,5,7三步中的设置: build command, includes, generate makefiles.
  • ====再转一篇@2009-4-24==

    可能学习qt的人普遍感觉qt的ide开发环境比较少,也比较难找。其实作linux开发的,ide环境是比较匮乏的。

    这里我推荐几款比较好的ide: 
    1,kdevelop 3.5 版 ,老牌的集成开发环境 ,支持qt4 
    2,monkey studio  ,http://www.monkeystudio.org/ 
    3,edyuk                  ,http://sourceforge.net/project/showfiles.php?group_id=168260 
    4,cobras                ,http://www.beesoft.org/download_cobras.html 
    5,Dev-cpp            ,http://www.bloodshed.net 
    6,QDevlop  重点推荐,非常好用http://qdevelop.org/ 
          使用方法:http://blog.csdn.net/lhfeng/archive/2007/11/05/1867585.aspx 
    7,Eclipse  重点推荐,资源占用较少
          使用方法:http://blog.csdn.net/lhfeng/archive/2007/12/06/1921265.aspx 
    8,其它的还有vs2005也不错.不过我想还是应该支持正版事业. 
    希望能为qt的爱好者提供力所能及的帮助。