支持源码单步调试QT库编译笔记

编译环境:windows 10

编译工具:mingw_4_4_0

Qt源码版本:qt-everywhere-opensource-src-4.8.5(下载地址:http://download.qt.io/archive/qt/4.8/4.8.5/

1、确定已经安装合适的编译工具,本次编译采用mingw_4_4_0。可以在cmd输入以下命令检测是否已经正确安装。

l  gcc –version

l  g++ --version

l  mingw32-make –version

如果提示不是内部或外部命令,也不是可运行的程序或批处理文件。请检查是否已经将{mingwDir}/bin路径添加到系统环境变量path中。

2、正式编译前的配置

在正式编译前配置或裁剪Qt源码,进入{ qt-everywhere-opensource-src-4.8.5}目录打开configure文件,查找以下字段:

QT_DEFAULT_BUILD_PARTS=”libs tools examples demos docs translations”

根据需求,可进行必要裁剪。例如当只需要Qt库时,可以把examples,demos,docs删除,加快编译速度。

接着通过configure工具,生成makefile文件。

通过cmd进入到{ qt-everywhere-opensource-src-4.8.5}目录下,输入:

configure –help

即可查看配置参数说明,带*的参数为默认使用参数,带+号的参数要经过评估才能确定是否能使用。

下面说明几个常用的参数:

参数

说明

-release

只生成release版本的库

*-debug

只生成debug版本的库

-debug-and-release

生成两个库,包括release库与debug库

-opensource

编译开源版

-commercial

编译商业版,需要提供密钥

*-shared

生成动态链接库

-static

生成静态链接库

-platform <spe>

知道编译平台,<spe>为编译平台

本次编译配置命令为:

configure –debug –opensource –fast –platform win32-g++ -no-webkit –no-s60

(如果想使用VS的编译器,可以将win32-g++改为win32-msvc2013(VS2013版本))

输入该命令后,会开源许可证的提示,安装提示输入’y’后直接跳过,等待10分钟左右,会提示配置完成。

3、正式编译

正确配置结束后,直接键入mingw32-make进行编译,2个小时以后,即可编译完成。

(如果使用的是VS编译器,则需要进入VS开发人员命令行,进入源码目录后使用nmake进行编译)

4、编译后使用

方法一:通过Qt Creator使用

打开Qt Creator,通过菜单栏-工具-选项打开设置窗口,进入下图选项卡:

点击添加,选择{ qt-everywhere-opensource-src-4.8.5}\bin目录下的qmake.exe。再切换到下图选项卡:

添加一个新的构建套件,配置如上图所示(原先使用了mingw4_4_0的GDB调试器,无法中QTC进行调试,切换到mingw4_9_2的GDB调试器,即可正常调试,猜测是QTC版本太高,不支持低版本的mingw的调试器)。

之后新建一个工程,选择该套件进行编译即可。在调试模式下,支持单步调试进Qt源码中。

方法二:命令行编译

将{ qt-everywhere-opensource-src-4.8.5}\bin路径添加到系统环境变量path 中,使用以下命令测试是否添加正确:

qmake –version

正确安装后,cmd命令行下,进入工程目录{workdir},使用如下命令生成可执行文件:

qmake -project

qmake

mingw32-make

中{workdir}\debug目录下可找到可执行文件。

(如果是VS的编译器则使用qmake -r -spec win32-msvc2013然后执行nmake,需要在VS2013 开发人员命令提示中使用

或者qmake -r -spec win32-msvc2013 -tp vc生成vcxproj工程文件,双击打开,使用VS编译)

5、编译后对源码进行修改

方法一:

{ qt-everywhere-opensource-src-4.8.5}\src路径下每个子文件夹都有其对应的pro文件。例如现在需要修改QmessageBox,该模块位于gui目录下,只需通过Qt Creator打开gui.pro文件(正常情况下可以双击打开)。选择一个构建套件,要求是编译器必须与原先编译源码时一样。之后进入项目配置视图,清除自动生成的qmake,make构建步骤,添加自定义构建步骤,结果如下图所示:

只需键入mingw32-make即可(如果采用VS编译器,键入nmake)。

修改QmessageBox完成后,构建工程即可(点击运行会弹出一个对话框,提示无法找到可执行程序,忽略即可)。之后Qt库会自动更新,其他选择该Qt库的工程无需任何调整。

注意!不要执行qmake操作!!

方法二:

直接修改QmessageBox,修改完成后,通过cmd命令行进入到gui文件夹,使用mingw32-make命令(如果采用VS编译器,键入nmake),之后同样会自动更新相应的Qt库。

 

最新文章

  1. HTTP Method 之 Post VS. Get
  2. C#实现Levenshtein distance最小编辑距离算法
  3. 四则运算app代码上传GITHUB
  4. c#中高效的excel导入sqlserver的方法
  5. sql 索引 填充因子(转)
  6. phpcms 的实用相关接口,函数,调用方法
  7. ios 图片转视频
  8. SQL server 跨库插入数据
  9. 二极管IN4001~IN4007参数
  10. SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息
  11. CLR via C#中的一个多线程例子
  12. Web服务器自定义错误页面
  13. P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm 记忆化搜索dfs
  14. 剑指offer 第十一天
  15. 软件工程(FZU2015) 增补作业
  16. 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。
  17. IDEA jrebet插件安装
  18. Python 之异常处理机制
  19. python---基础知识回顾(十)进程和线程(协程gevent:线程在I/O请求上的优化)
  20. activity启动模式launchMode区别和优化

热门文章

  1. android的窗口机制分析------UI管理系统
  2. open-falcon的邮件报警
  3. intent 支持的action 动作
  4. Why is chkconfig no longer available in Ubuntu?
  5. Oracle数据库有用函数
  6. ORCAD元件属性白色区域和黄色区域的理解
  7. mysql (8.0 或以下)数据 卸载, 安装, 创建用户, 赋权
  8. 抽象类的子类能够new
  9. Windows 10遭遇百万粉丝“围攻”(挑刺)
  10. C++中字符数组和字符串string