使用qt creator来编译 调试 用CMakeLists组织的工程
爱情原如树叶一样,在人忽视里绿了,在忍耐里露出蓓蕾。 —— 何其芳
使用CMake作为构建系统,需要自己写CMakeLists.txt,相当于qmake下的pro。
1 打开用CMakeLists.txt组织的工程:
下面是用qt creator 3.5.1做的实验:
点击file---打开文件,找到CMakeLists.txt文件,然后会弹出如下图所示的对话框,qt creator会询问你是否在存放CMakeLists.txt的文件夹的同级目录下建立另一个文件夹xxx-build,亦可以自己指定。 后面运行cmake,编译时生成的中间文件以及最终的可执行文件都会存放在这个文件夹。 相当于自己手动调用cmake编译时,一般先建立一个名字为bulid的文件夹,然后,在命令行下将路径切换到build文件夹内部,运行 cmake "CMakeLists.txt所在的路径"。
同时,它会让你在下图的Arguments行输入cmake指令,我用的是cmake 后面跟CMakeLists.txt的全路径,即如果CMakeLists.txt存放在/home/bb/cc文件夹,则cmake /home/bb/cc。
Generator行,我选择的是下图的,还有一个Ninja(Desktop Qt5.5.1 GCC 32bit)可以选择,不知道是什么。
然后点击Run Cmake按钮,运行完后会提示:Build files have been written to: xxx。最后点击finish按钮,就可以进入正常的编辑界面了,所有的文件都会组织好,显示出文件树。
现在高版本的qt creator,例如qt creator4.6,打开该种工程时,可以直接选择CMakeLists.txt,qt creator会自动配置好,可以选择build目录。
cmake的版本问题:
CMakeLists.txt文件的第一句一般对cmake的版本有要求例如:
cmake_minimum_required(VERSION 3.10)
如果当前使用的版本过低,安装高版本即可:https://blog.csdn.net/qq_35865125/article/details/81557738
例如在linux下安装,我曾经安装到了/usr/local/Cmake3.12.1路径下,然后通过qt creator的tool--options调出cmake设置界面,进行选择即可:
然后,为你使用的kit选择最新的cmke:
2 使用qt creator进行单步调试:
方法一:(原文作者并不推荐)由于CMake默认产生的是Default/release版本。可以手动编辑CMakeLists.txt文件,在文件的最后添加:
set(CMAKE_BUILD_TYPE Debug),再次构建即可。
--------------但是,我将添加前后生成的makefile进行了比较,并没有任何区别。可能区别在与其他地方吧,如果不在最后添加set(CMAKE_BUILD_TYPE Debug)的话,一点击debug就会报错:
还可以在命令行设置:--亲测可行:
cmake -DCMAKE_BUILD_TYPE=Debug ..
注意每次CMakeLists.txt改变后,最好重新Run CMake,然而arguments不必每次都填写,因为cmake会在CMakeCache.txt中记录以前所有添加过的参数。如果你改变了CMake的参数,则直接删除CMakeCache.txt,重新生成,否则有问题。另外,在qt creator中点击clean按钮并不会清楚CMakeCache.txt。
build时,release模式和debug模式的区别是什么,是不是debug模式时,添加了更多的调试信息,以为单步执行做准备?。
方法二:(qt creator3.5.1中并没有相应的操作,qt creator4.6中有!相当方便!)
工程默认的构建方式是Default,也就是release的意思。需要调整为Debug才能实现单步断点调试。
勾选完成Debug之后,请在菜单->Build点击选项“Run CMake”即可。
3 如何添加C++/C源文件和头文件?又如何添加第三方依赖库库和头文件?
唯一的方式就是手动修改CMakeLists.txt文件。右键点击工程名字后弹出的框中,add file是灰色的,所以qt creator并不支持自动添加文件到cmakelists组织的工程,自己动动爪子。
ref:
https://blog.csdn.net/libaineu2004/article/details/78448392
https://blog.csdn.net/darkdong/article/details/6094336
使用qt creator来编译 调试 用CMakeLists组织的工程的更多相关文章
- Qt Creator配置MSVC调试器
安装完QT后会看到Qt Creator中的MSVC构建组件带有黄色的感叹号,那是因为没有调试器的原因.由于Qt-MSVC版本套件没有默认安装调试器, 需要我们自己手动下载安装. 根据官方文档http: ...
- Qt creator自定义编译运行步骤
一直用Qt creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用. 用Qt creator开发一般的工程,是不用修改编译 ...
- Qt Creator 中文编译失败 怎么办
在Qt Creator 中c++源码有中文字符,结果不能编译成功. 代码 QMessageBox::warning(this, "警告","用户名密码错误",Q ...
- windows下,Qt Creator 中javascript调试器安装并使用
最开始使用Qt Creator时,想使用断点来调试javascript代码.但在按下debug键后,却提示调试器未配置,让我比较郁闷. 好了,郁闷的是说了,咱们来说说高兴的.要Qt Creator调试 ...
- Ubuntu中Qt Creator无法启动调试
Ubuntu下安装Qt creator后无法启动调试,报错为Ptrace:Operation not permitted. 产生原因: 在Ubuntu 11.04("Natty Narwha ...
- 【ARM-Linux开发】【Qt开发】Qt Creator自定义编译运行步骤
原文:http://www.linuxidc.com/Linux/2015-04/115763.htm 一直用Qt Creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃 ...
- Qt Creator 中关于调试器的设置
Qt Creator3.4.2 Based on Qt 5.5.0 (MSVC 2013, 32 bit) 在安装了VS2013的电脑上能够自动识别VS编译器,却不能识别调试器 需要下载一个wdk,安 ...
- IMX6开发板qt creator直接编译ARM架构程序
除了通过 11.2.2 小节通过命令行的操作来编译在 iTOP-imx6 开发板上运行的程序,还可以直接在 qtcreator 上设置,然后每次编译的程序都可以在开发板上运行.如下图所示,打开 qtc ...
- Linux上使用Qt Creator进行C/C++开发
目录[-] 1.安装Qt Creator和基础构建环境(以Ubuntu为例): 2.把自动完成快捷键"Ctrl+空格"改为"Alt+/"或者"Shif ...
随机推荐
- git的实际工作经验总结
分支工作的一个较佳的实践, 即git工作的最佳实践 从最初的svn到后来的git,上来给我的感觉就是git更方便, 可以在本地进行版本的提交,回退. 后来对hash有所了解, 知道了git的每个版本其 ...
- 数据结构实验之查找六:顺序查找(SDUT 3378)
(不知道为啥开个数组就 TLE .QAQ) #include <stdio.h> #include <stdlib.h> #include <string.h> / ...
- (6)Go函数和函数式编程
一.Go函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民" ...
- driud 异常
异常如下: 十二月 25, 2017 11:37:14 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetProper ...
- 【CSP模拟赛】坏天平(数学&思维)
蹭兄弟学校的题目做还不用自己出题的感觉是真的爽 题目描述 nodgd有一架快要坏掉的天平,这架天平右边的支架有问题,如果右边的总重量比左边多太多,天平就彻底坏掉了.现在nodgd手上有n种砝码,质量分 ...
- SpringMVC的处理器全局异常处理类
SpringMVC的处理器全局异常处理类 package com.huawei.utils; import org.springframework.web.servlet.HandlerExcepti ...
- ciscn2019华北赛区半决赛day1web5CyberPunk
刚比赛完的一段时间期末考试云集,没有时间复现题目.趁着假期,争取多复现几道题. 复现平台 buuoj.cn 解题过程 首先进入题目页面 看起来没有什么特别的,就是一个可以提交信息的页面.查看响应报文也 ...
- [转]MyEclipse基础学习:Java EE Learning Center
我就不翻译了,直接给出Java EE学习中心的原文链接: Java EE Learning Center 另外,给出MyEclipse IDE 环境中Apache Tomcat server服务器正常 ...
- 阿里云ECS,Ubuntu Server 16.04安装图形界面远程控制
最近阿里云有新用户免费体验6个月的活动,虽说是免费体验,但是还是要买个它们的产品才行,我就花9.9买了个最便宜的,然后就获得了一个乞丐版的ECS服务器,配置是1核内存1G.系统装的是Ubuntu Se ...
- 各类型变量所占字节数,sizeof()
与操作系统位数和编译器都有关. 可用sizeof()得到,当前主流编译器一般是32位或64位. 类型 16位 32位 64位 char 1 1 1 sho ...