K02-01通过简单exe介绍pro基本配置
版权声明
---------------------------------------------------------------------------------------------------------------------
该文章原创于Qter开源社区(www.qter.org)
作者: 女儿叫老白
转载请注明出处!
---------------------------------------------------------------------------------------------------------------------
课程目录: 【独家连载】《Qt入门与提高-GUI产品开发》目录
课程源码:ks02_01.zip 提取码:aca3
引言
----------------------------------------------------------------------------------------------------------------------
从今天开始,我们开展一门《Qt入门与提高-开发完整的GUI程序》的课程,本课程侧重源代码开发,不会涉及QML编程。课程使用Qt5.11.1版本,VS2017的IDE开发环境。
正文
----------------------------------------------------------------------------------------------------------------------
今天,我们来看一下通过一个简单的exe来介绍一下pro文件的使用。
我们的exe功能很简单,源代码如下:
/*! \file: main.cpp
\brief mian()函数的实现文件
\author 星点课堂 女儿叫老白
\Date 2018/8
*/
#include<iostream>
#include"qglobal.h"
using std::cout;
using std::endl;
int main(intargc, char * argv[])
{
Q_UNUSED(argc);
Q_UNUSED(argv);
cout << "我真的啥也没干." << endl;
return 0;
}
复制代码
上述代码中,为了向终端输出日志,需要用到cout,endl。而这就需要引用<iostream>。所以我们需要编写:
#include <iostream>
这是C++的写法,在C中使用”iostream.h”。大家可能注意到了,我们使用using语句引入了cout和endl,这是因为我们不想引入整个stl命名空间,有的coder可能会使用:
using namespace stl;
但我们不推荐这样做。我们推荐仅引入所需的内容,或者不编写引入命名空间的代码,直接在使用cout时写成:
std::cout <<“xxx” << std::endl;
main()函数确实比较简单,我们来看一下怎么编译这个文件。在C++中,如果使用gcc编译器,那么我们需要提供Makefile文件(项目文件),而这个文件使用手工编写是非常麻烦的,而且还涉及到非常多非常复杂的编译选项。Qt提供了一种简化手段来提供这个Makefile文件,就是要求开发者提供pro文件,然后使用qmake命令将其转换为Makefile。pro文件是什么呢?
pro文件是一个文本文件,它采用key = values的语法,比如,我们这个工程用到了main.cpp,那么我们可以在pro中编写如下语句:
SOURCES += main.cpp
其中,SOURCES指明本项目用到的cpp文件列表。其中+=表示在SOURCES原值的基础上添加main.cpp。比如,我们在pro后面的部分可以继续追加cpp文件:
SOURCES +=imp.cpp
这样项目包含的cpp文件(SOURCES)就变成: main.cpp、imp.cpp。
如果有多个cpp文件,我们可以写在main.cpp的后面:
SOURCES +=main.cpp imp.cpp
但是,这样可读性不是很好,我们一般会使用 “\”进行换行,比如:
SOURCES +=main.cpp \
imp.cpp
请注意main.cpp和”\”之间最好加一个空格以便增加可读性。
如果有头文件,我们可以使用HEADERS配置项,用法同SOURCES。
为了指明本项目的目标程序名称,我们用到TARGET配置项:
TARGET =ks02_01
这行代码表明我们的项目最终程序为ks02_01,如果它是一个可执行程序,那么最终在windows上生成的程序为ks02_01.exe,在linux上(或unix)上为ks02_01。如果生成的是一个dll,那么在windows上为ks02_01.dll,在linux(或unix)上可能为libks02_01.so.1.0.0。
这是最最基本的配置,我们来看一下整个项目的pro文件:
TEMPLATE = app
LANGUAGE = C++
复制代码
其中,TEMPLATE = app表示这是一个exe。如果是dll,则TEMPLATE=lib。
因为使用C++语言进行开发,所以配置为:LANGUAGE = C++。
我们这个项目是一个终端运行程序,所以设置为:CONFIG += console,如果不设置,则无法在终端中正常运行(比如,cout的信息无法输出到终端)。
最后的几个DIR用来设置各种文件的路径。
DESTDIR表示最终目标程序的存放路径。
OBJECTS_DIR表示临时文件的路径。
MOC_DIR用来设置moc文件的存放路径(Qt的moc命令生成的临时文件)。该配置项我们后面章节中会详细说明一下。
大家可能注意到了,这些路径的设置都使用了相对路径的方式,这种方式其实我们并不推荐,后面的章节中,我们会使用环境变量的方式设置这些路径。
我们把pro文件和cpp文件放到同一个目录下,取名为ks02_01。然后在VS2017的64位命令行下执行:
qmake
nmake
复制代码
程序即可编译成功。
如果您希望使用VS2017的IDE开发环境打开该项目,那么需要生成VS2017可以识别的项目文件,方法是在VS2017的64位命令行中,进入项目所在目录,运行:
qmake -tp vc
复制代码
好了,pro介绍完毕,大家可以尝试一把了。
结语
----------------------------------------------------------------------------------------------------------------------
本文介绍了pro最常用的配置项,是为了大家能够开始自己的第一个Qt程序,后面我们会按照产品开发体系讲解Qt的更多知识,欢迎您提出宝贵意见。
下一节:KS02-02 整理一下目录吧
- Ubuntu 12.04下安装vim, 简单配置与基本使用介绍
- HTTP服务端接口模拟工具-HttpServerMockTool 1 工具功能介绍 这个工具可以通过简单的配置达到快速模拟第三方HTTP服务端接口的作用,替代以前要手写servlet代码再放到to
- Frame Relay - 简单介绍及基本配置
- hadoop基本介绍及简单安装配置
- SpringMVC框架的基本配置和简单方法介绍
- 01_简单的环境配置php+基本知识点
- apache基本配置管理一:apache服务介绍,以及简单搭建
- HAProxy基本介绍及简单配置
- Jetty系列: 01- 基本使用和简单介绍
- zabbix监控介绍,基本安装配置
- Hibernate的基本配置和一个简单的实例(含思维导图)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
- CSS基本样式简单介绍
- webstorm简单介绍,webstrom基本使用
- CAShapeLayer的简单介绍以及基本使用
- 网络工程实训_2路由器基本配置及IOS介绍
- Derby学习笔记(一)Derby简单配置和基本使用
- Linux下的一些简单网络配置命令介绍
- PHP.ini安全配置检测工具pcc简单介绍
- webstorm简单介绍,webstrom基本使用