您的位置:首页 > 编程语言 > Qt开发

K02-01通过简单exe介绍pro基本配置

2018-10-23 16:40 295 查看

版权声明

---------------------------------------------------------------------------------------------------------------------

该文章原创于Qter开源社区(www.qter.org

作者: 女儿叫老白

转载请注明出处!

---------------------------------------------------------------------------------------------------------------------

课程目录: 【独家连载】《Qt入门与提高-GUI产品开发》目录


课程源码:ks02_01.zip  提取码:aca3


引言

----------------------------------------------------------------------------------------------------------------------

      从今天开始,我们开展一门《Qt入门与提高-开发完整的GUI程序》的课程,本课程侧重源代码开发,不会涉及QML编程。课程使用Qt5.11.1版本,VS2017的IDE开发环境。


正文

----------------------------------------------------------------------------------------------------------------------

     今天,我们来看一下通过一个简单的exe来介绍一下pro文件的使用。

       我们的exe功能很简单,源代码如下:

  1. /*! \file: main.cpp

  2. \brief mian()函数的实现文件


  3. \author 星点课堂 女儿叫老白

  4. \Date 2018/8

  5. */

  6. #include<iostream>

  7. #include"qglobal.h"


  8. using std::cout;

  9. using std::endl;


  10. int main(intargc, char * argv[])

  11. {

  12.     Q_UNUSED(argc);

  13.     Q_UNUSED(argv);


  14.     cout << "我真的啥也没干." << endl;

  15.     return 0;

  16. }

复制代码

    上述代码中,为了向终端输出日志,需要用到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文件:

  1. TEMPLATE   = app

  2. 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位命令行下执行:

  1. qmake

  2.     nmake

复制代码


程序即可编译成功。

如果您希望使用VS2017的IDE开发环境打开该项目,那么需要生成VS2017可以识别的项目文件,方法是在VS2017的64位命令行中,进入项目所在目录,运行:

  1. qmake  -tp  vc

复制代码

好了,pro介绍完毕,大家可以尝试一把了。

   

结语

----------------------------------------------------------------------------------------------------------------------

      本文介绍了pro最常用的配置项,是为了大家能够开始自己的第一个Qt程序,后面我们会按照产品开发体系讲解Qt的更多知识,欢迎您提出宝贵意见。


下一节:KS02-02   整理一下目录吧


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Qt 入门 pro exe