您的位置:首页 > 编程语言 > Qt开发

【转载】windows下Qt+codeblock 平台搭建

2016-04-21 18:51 525 查看
转自:http://blog.csdn.net/liu121068/article/details/7094373

windows下 Qt4+code::blocks+MinGW 环境搭建
网上查资料+加个人实验 终于搭建好一个比较成功的Qt环境
首先安装code::blocks 我安装的版本是code::block 10.05 包含MinGW 的版本,
再安装Qt 安装过程中 会让选择MinGW 的安装路径

提示版本不符 果断确定

本人安装到C:\Qt\4.7.3目录下 同时将 C:\Qt\4.7.3\bin 加入环境变量

安装完就是 环境的搭建了
搭建过程中走了不少弯路,发现只要在code::blocks 新建工程中设置好就可以了
新建工程时 选择QT4 project

到选择qt的安装路径 在弹出的Global Variable Editor 中 base 输入Qt的安装路径”C:\Qt\4.7.3”  include中选择Qt的include路径 “C:\Qt\4.7.3\include” lib 中 选择Qt的lib路径  “C:\Qt\4.7.3\lib”
然后一路确定就可以了。

工程新建好后 会自动新建main.cpp 包含代码
#include <QApplication>
#include <QFont>
#include <QPushButton>
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QPushButton quit("Quit");
    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));
    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
    quit.show();
    return app.exec();
}

这样就可以像 c 一样build +run 运行Qt程序了

如果在头文件加入 Q_OBJECT 或者 槽函数 编译将会出现错误
一般都是提示 “vtable for …….”
解决方法如下:
    在头文件的Properties中(头文件上点右键)
Build选项卡 选择 Compile file
Advanced选项卡 选择 Use custom command to build this file:
            输入 “moc.exe $file –o moc_$file_name.cpp”
再单独编译头文件(右键 Build file) 将生成的moc_*.cpp加入工程中 build+run 就可以了。
以上设置 基本解决了开始学Qt时的环境问题

再次出现问题是在 加入 #include<QtNetwork> 后出现的 提示 找不到头文件。
网上查资料说code::blocks 新建 qt4工程的时候只会检查include 和 include\QtGui下的头文件 其他头文件路径需要手动指定 原因找到 问题就好解决了。
在菜单Project->Build options Search directories 选项卡中 加入 QtNetwork 所在目录 “C:\Qt\4.7.3\include\QtNetwork” 由于加入网络功能 所以需要加入网络库, 在Linker setting选项卡中加入QtNetwork4 网络(加入Sql库操作类似)
再次 build+run  成功

新建工程时 自动加入路径的方法:
在code::blocks 安装目录下有 \share\CodeBlocks\templates\wizard\qt4\ wizard.script
此文件是新建qt4工程时所加载的脚本文件 (要修改请先做好备份)
用记事本打开 在95行有
    project.AddIncludeDir(QtPathDefaultInc);
project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtGui"));
//(注) QtPathDefaultInc <- _T("$(#qt4.include)");
//wxFILE_SEP_PATH路径分隔符(平台相关性)
这两条语句就解释了 为什么其他目录的头文件需要手动指定
自己添加类似语句    
project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtNetwork"));
    project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtCore"));
    project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtQpenGL"));
    project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtSql"));
    project.AddIncludeDir(QtPathDefaultInc + wxFILE_SEP_PATH + _T("QtMultimedia"));
再次新建工程 Build options 中果然有了C:\Qt\4.7.3\include\QtNetwork 等目录。

个人原创 不足之处请指出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: