使用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 ...
随机推荐
- Mybatis mapper接口与xml文件路径分离
为什么分离 对于Maven项目,IntelliJ IDEA默认是不处理src/main/java中的非java文件的,不专门在pom.xml中配置<resources>是会报错的,参考这里 ...
- Django基础(1)-虚拟环境的安装及配置
virtualenv介绍 (1)做什么的?virtualenv是用于创建独立的python环境,使得多个python应用彼此独立: (2)优点: a)使不同应用开发环境独立 b)环境升级不影响其他应用 ...
- Dns的作用
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 DNS系统:通过 ...
- 小程序的基本原生js使用
1.点击事件 <a data-current="{{setting.current}}" bindtap="clickcurrent" style=&qu ...
- Linux 组的管理
一.Linux组基本介绍 在Linux中每个用户必须属于一个组,不能独立于组外.在Linux中每个文件有所有者,所在组,其他组的概念 1)所有者 2)所在组 3)其他组 4)改变用户的所在组 二.文件 ...
- various system release [online]
1. 金丝雀发布 Canary 简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据. 金丝雀发布,一 ...
- sem_init重复调用引发sem_wait线程无法被唤醒
问题 一段老代码,两个线程,一个线程调用sem_wait等待信号量,另外一个线程在某失败分支会调用sem_init清信号量,结果导致sem_wait线程无法被唤醒: 分析 Linux manpage ...
- Install LEDE on a BT Home Hub 5 / Plusnet One Router
Overview / Purpose of this guide These instructions are for aimed at users of Windows but a lot of t ...
- Win10安装PyQt5与Qt Designer【转】
https://blog.csdn.net/u011342224/article/details/78879633 1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 ...
- Linux测试硬盘读性能的常用工具-hdparm
通常情况下可以使用fdisk.df等命令查看硬盘的分区情况以及当前已使用空间大小.剩余空间大小等信息.但是如果要查看硬盘的硬件信息如 硬盘型号.序列号.已运行时间等信息该用什么工具查看呢? 在Linu ...