qt5 下载 及 qtcreator集成msvc2017 x64

qt5下载

下载qt 5.12路径

下载 qtcreator路径

qt release路径

qtcreator集成msvc2017 x64

集成说明

qtcreator

qtcreator是我用过的非常好用的c++ ide。
比如它自带的自动注释功能。
在"Tools->Editor->completion",最下的3个选项,就是“自动注释功能”

Documentation Comments
- Enable Doxygen Blocks
	- Generate brief desciption
- Add leading asterisks

使用时,只要在类/函数/变量前,输入/**,然后回车,就可生成对应的注释格式

qt creator 界面字体过小

windows下

在批处理文件*.bat中输入:

@echo off 
set QT_SCALE_FACTOR=1.5
qtcreator.exe

此外,QT_DEVICE_PIXEL_RATIO也可以实现同样的效果。
设置好后,qt creator的界面字体大了,但是批处理文件不能固定到任务栏。
这时,为批处理文件新建一个快捷方式*.lnk文件,并在“属性->目标中”的
path/to/bat/file改成cmd /c path/to/bat/file,这样快捷方式就能固定到任务栏了。

非 windows

在批处理文件*.sh中输入

   #!/bin/bash
   #my_qtcreator.sh
   export QT_SCALE_FACTOR=1.5
   /opt/Qt/qtcreator-4.2.2/bin/qtcreator

另外,设置环境变量QT_AUTO_SCREEN_SCALE_FACTOR也可以。

QT_AUTO_SCREEN_SCALE_FACTOR=1 ~/Qt/Tools/QtCreator/bin/qtcreator $1 $2 $3 $4 $5 $6 $7 &

windows 使用qtcrator上启动多线程编译

visual studio号称地表最强的IDE,但我用着确实不大好用,突出的几点:

  • 快捷键不好按
  • 安装包太大
  • cmake支持太差,总需要借助cmake-gui,每次添加文件十分麻烦
  • visual studio号称最强,因为它在C#支持方面做得非常好,而在C++支持方面确实不算好,连自动注释的功能都没有,每次都得自己敲格式。

于是我使用在linux上用的qt creator,这是专门为C/C++设计的,非常好用,遗憾的是目前在windows上的“性能测试“比较麻烦,因为qtcreator默认支持强大的valgrind,但这个工具在windows上没有。

qt creator集成vs2017,已经在前文讲过,现在说下开启多线程编译:

  • 在"Tools->Kits"标签下,找"Generator",选"Ninja",然后"platform"和"Toolset"匀设置为
  • 在“软件左侧-项目”下的“构建步骤”添加参数-j 4,4代表多线程数

qtcreator原生支持gtest

我使用gtest来实现测试驱动开发,qtcreator原生支持gtest,简直完美
具体参见cmake+gtest

the CDB process terminated

问题

使用qtcreator启动调试时提示
qt5 下载 及 qtcreator集成msvc2017 x64_第1张图片
我尝试了各种从网上能找到的cmake设置办法,都不好用。。。

解决办法

在cmd窗口启动编译的程序,看提示哪个dll没有找到,把这个目录添加到系统变量

windows 系统,添加到变量Path,set Path=%Path%;%要添加的目录%
linux,添加到变量PATH, export PATH= P A T H ; PATH; PATH;{要添加的目录}

莫名其妙的情况

代码前一秒好好的,下一秒重编译后就出现如下情形:
qt5 下载 及 qtcreator集成msvc2017 x64_第2张图片
debug定位不到代码出错处,最终停在NtWaitForWorkViaWorkerFactory。但看样子,像是main函数return的地方停的。
甚至代码简单到

int main(){
	return 0;
}

还是这样。
我尝试了用 VC++的memory leak来检查,还是找不到原因。
于是我考虑也许这不是我的问题。google到的信息也支持我的结论,vc++不知道为何会启动多个线程。
换到linux下,发现之前的代码并无问题。
我查了整整两天。。。

你可能感兴趣的:(c++,qt)