日志
2.1 案例1 通过一个简单的EXE来介绍pro的基本配置
2018-10-23 13:49
本案例对应的源代码目录:src/chapter02/ks02_01。程序运行效果见图2-1。
图2-1 案例1运行效果 计算机软件一般以EXE或DLL的形式存在,本节先通过一个简单的EXE项目实例介绍Qt的pro文件(项目配置文件)的基本配置。 本节的EXE功能很简单,仅输出一行信息: 我真的啥也没干。具体代码请见代码清单2-1。 代码清单2-1
在代码清单2-1中,为了向终端输出日志,用到了STL库的cout、endl(cout用来向终端输出信息,endl表示换行)。这需要引用<iostream>,所以编写#include<iostream>语句。除此之外,在标号①、标号②处,使用using语句引入了cout和endl,这是为了避免引入整个stl命名空间。有的开发者可能会写成:
本书不推荐这样的写法。在涉及命名空间的使用时,应该仅引入所需的内容或者不编写引入命名空间的代码,即:直接使用std::cout的写法:
main()函数比较简单,因此不再过多讲解。下面看一下怎么构建这个项目。在C++中,如果使用GCC编译器,就需要提供Makefile文件(项目配置文件)。但手工编写Makefile文件非常麻烦,而且还涉及非常多、非常复杂的编译选项。Qt提供了一种简化手段来生成Makefile文件。它要求开发者提供pro文件,然后使用qmake命令将其转换为Makefile。那么pro文件是什么呢?pro文件是Qt定义的项目配置文件。它是文本格式的文件,采用key= values的语法。比如,项目用到了main.cpp,那就在pro中编写:
其中,SOURCES指示本项目用到的cpp文件列表。其中+=表示在SOURCES原值的基础上添加main.cpp。比如,在pro中可以继续追加cpp文件:
这样,项目包含的cpp文件(SOURCES文件)就变成: main.cpp、imp.cpp。如果有多个cpp文件,可以写在main.cpp的后面,比如:
但如果这样写,代码的可读性不是很好。这种情况下可使用“\”进行换行。比如:
注意:main.cpp和后面的“\”之间最好加一个空格以便增加可读性。 项目中添加头文件时使用HEADERS配置项,用法同SOURCES。比如:
每个Qt项目最终都要生成一个目标程序。为了指示项目的目标程序名称,需要用到TARGET配置项,比如:
这表明该项目生成的目标程序名称为ks02_01。如果该项目生成一个可执行程序,那么在Windows上生成的程序为ks02_01.exe,而在Linux上(或UNIX)上为ks02_01。如果该项目生成的是一个DLL(动态链接库),那么在Windows上为ks02_01.dll,而在Linux(或UNIX)上可能为libks02_01.so.1.0.0。 以上介绍了pro文件最基本的配置。代码清单2-2是本案例中pro文件的完整内容。 代码清单2-2
在代码清单2-2中,TEMPLATE =app表示这是一个EXE项目。如果本项目生成的最终模块是一个DLL,则写成TEMPLATE=lib。因为使用C++语言进行开发,所以写成:LANGUAGE= C++。这个项目是一个终端运行程序(命令行程序),所以写成:CONFIG +=console。如果不这样设置,则无法在终端中正常运行(比如,cout的信息无法输出到终端)。如果想进行验证,可以封掉这行配置,方法是在该行配置前加上一个“#”号(输入#时请使用英文、半角,不要用中文)。“#”表明本行是注释,那么Qt就不会把这行当作配置进行解析。封掉某配置项时可以写成:
最后的几个xxxDIR用来描述各种路径。
在本案例的pro文件中,这些路径的设置都使用了相对路径的方式,其实一般不推荐这种方式。在后续的案例中会使用环境变量的方式设置这些路径。 现在把pro文件和cpp文件放到同一个目录下,目录名设置为ks02_01。最后,构建项目 (通俗地讲,也可以称作编译),以便生成最终的目标程序。可以通过两种方式构建应用程序:使用Qt Creator或者使用VS 2017。 1.使用Qt Creator 启动Qt Creator,选择【文件】|【打开文件或项目】菜单项,出现【打开文件】对话框,打开ks02_01.pro。然后在图2-2 所示界面中单击Configure Project按钮对项目进行配置。 图2-2 Qt Creator项目配置 然后,单击图2-3中的【构建项目】按钮。 图2-3 Qt Creator构建项目 当构建成功后,单击图2-3中的【运行】按钮即可启动本案例的程序。 2.使用VS 2017 1)使用VS 2017命令行 首先根据构建的应用程序位数(64位/32位),选择对应的VS2017命令行。如果构建64位程序,则选择如图2-4所示的【适用于VS 2017的x64本机工具命令提示】(简称VS2017的64位命令行);如果构建32位程序,则选择如图2-4所示的【适用于VS2017的x86本机工具命令提示】。除特殊说明外,本书所有程序均构建成64位。 图2-4 VS 2017的x64和x86命令提示启动菜单 在VS 2017的64位命令行中,进入项目所在目录,执行如下命令后即可将项目构建成功:
如果需要清除项目生成的临时文件及目标程序,然后重新构建目标程序,那么可以使用如下命令:
2)使用VS 2017 IDE开发工具 如果使用VS 2017的IDE开发工具打开该项目,那么首先要生成VS 2017可以识别的项目文件。生成的方法是在VS 2017的64位(或32位,根据具体需要)命令行中,进入本案例所在目录,运行qmake命令。
其中vc表示生成VisualStudio可以识别的工程文件,“-tp”表示根据pro文件中TEMPLATE参数的取值生成工程文件。这样就可以生成名为ks02_01.vcxproj的项目文件。以vcxproj为后缀的文件是VS2017可以识别的项目文件。然后,在开始菜单中选择Visual Studio 2017菜单项启动VS 2017(见图2-5)。 图2-5 VS 2017启动菜单项 启动VS 2017后,选择【文件】|【打开】|【项目/解决方案】菜单项,打开ks02_01.vcxproj项目配置文件。打开项目后,选择【生成】|【生成解决方案】菜单项完成项目构建。 3. 用UTF-8编码保存源代码文件 本节介绍2种用UTF-8编码格式保存源代码文件的方法。 1)使用Windows自带的记事本 在Windows资源管理器中新建一个空白的文本文件,然后用Windows自带的记事本打开该文件。选择【文件】|【另存为】菜单项,弹出【另存为】对话框,在【编码】处选择UTF-8(见图2-6)。 图2-6 另存为UTF-8编码 2)设置Qt Creator的文件编码 运行Qt Creator,选择【工具】|【选项】菜单项(见图2-7)。 图2-7 Qt Creator工具菜单 如图2-8所示,在【选项】对话框中左侧列表框中选择【文本编辑器】选项卡,然后选择【行为】选项卡,将【文件编码】选项区域的【默认编码】设置为UTF-8,将UTF-8 BOM设置为【如果编码是UTF-8则添加】。 图2-8 Qt Creator编码设置 完成配置后,就可以新建文件了。如图2-9所示,选择【文件】|【新建文件或项目】菜单项。在弹出的New File orProject对话框中选择C++,并根据需要选择C++ Source File或者C++ Header File(见图2-10)。 图2-9 Qt Creator新建文件 图2-10 Qt Creator新建C++代码文件 创建完源代码文件后,在文件中输入源代码后保存即可。请务必输入一些代码,否则直接保存空文件可能会导致文件变为GB2312编码。 pro文件不能以UTF-8BOM格式保存。如果用Qt Creator打开项目文件(xxx.pro)时提示错误信息“Cannot readxxx/xxx/xxx.pro: Unexpected UTF-8BOM”,那么可以用NotePad++编辑器打开项目文件,然后执行【编码】|【转为UTF-8编码】,将项目文件保存,然后再用QtCreator打开项目文件即可。 -------------------------------------------------------------------------------------------------- 《Qt 5/PyQt 5实战指南》目录 |
下一篇: 2.2 案例2 整理一下目录吧
上一篇: 无