使用QtCreator遇到的一些问题
Posted yuanziming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用QtCreator遇到的一些问题相关的知识,希望对你有一定的参考价值。
0. 背景
最近在学习QtCreator(版本:4.8.1;编译器:MSVC 2017 64-bit),遇到了一些问题,特记录如下。(
1. 引用库
QtCreator可以直接包含Windows.h,但是没有默认引用User32.lib,所以需要在设置里面引用,步骤如下:
右键点击左边栏的项目名称,点添加库,之后跳出一个选择框。如果是像上面说的这种能够直接包含头文件的就选系统库,而对于网上下载下来的包括头文件和静态库文件的就选外部库。之后按说明填就行了。注意添加完之后,需要在程序中添加一行#pragma comment(lib,"User32.lib")
才行。
2. 编码
QtCreator在编辑文件时通常用的是utf-8,然而msvc编译器认的是系统的编码,一般是gtk,所以会导致编译之后含有中文的字符串在命令行会变成“锟斤铐”??,在窗口中则乱码。为此我们需要强制使编译器按utf-8编译,可在程序中添加一行#pragma execution_character_set("utf-8")
。
3. 命令行输出
通常qmake编译出来的程序一般是不带命令行的,我们可以在.pro文件中加入一行CONFIG += console
改变这个设置,然后就可以用io函数了,IDE可以在底部“3 应用程序输出”处看到命令行输出的内容。注意:当在.pro文件中加入这句话后,以后如果想编译出不带命令行的程序,不仅需要删去这句话,还要额外加入CONFIG += console
才行。
4. 资源文件
把程序中用到的图片等文件打包进程序的步骤如下:
在左边栏新建.qrc文件,然后添加前缀,注意这个前缀和资源的路径没有关系,它仅仅是为了增加可读性,因此是可以任取的。添加完前缀后添加资源文件。此时.pro文件中应该多出一句RESOURSES += XX.qrc
。最后在程序中引用时,直接在路径字符串里写:前缀资源文件名
即可。如前缀是/,资源是icon文件夹里的mouse.ico,那么字符串写:/mouse.ico
。
5. 程序图标
给程序设定图标步骤如下:
在左边栏新建一个空文件命名为icon.rc,然后在里面添加IDI_ICON1 ICON DISCARDABLE "mouse.ico"
mouse.ico是你要的图标文件名,之后在.pro文件里添加一行RC_FILE += icon.rc
,然后用release选项编译就能看到了。
6. 打包程序
编译出来的程序不能直接运行,需要处理依赖。Qt已经为我们提供了这个工具,只需在开始菜单中启动“Qt 5.12.1 (MSVC 2017 64-bit)”,然后cd到程序所在目录,之后输入命令windeployqt 程序名
,它就会将程序的依赖复制到当前文件夹,然后尝试一下哪些是不需要的删除即可。
以上是关于使用QtCreator遇到的一些问题的主要内容,如果未能解决你的问题,请参考以下文章
在 QtCreator (VS 2010) 中设置 CUDA v7.0