返回顶部

收藏

QT简化编译工程步骤

更多

一般编译手写的QT程序要四步:

qmake -project

qmake projectname.pro

make

./projectname

手打比较麻烦,所以就写了这个小程序代劳。

它通过参数判断是编译当前目录下的QT工程还是编译指定的QT工程。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

#define BUF 50 
#define EXE 20

int main(int argc, char **argv)
{
    char pathbuf[BUF];
    char exec[EXE];
    char *path;

    if(2 == argc)
    {
        sprintf(pathbuf, "%s %s.%s", "qmake", argv[1], "pro");
        sprintf(exec, "%s%s", "./", argv[1]);
        chdir(argv[1]);
    }
    else
    {
        getcwd(pathbuf, BUF);
        char *token = strtok(pathbuf, "/");
        while(token)
        {
            path = token;
            token = strtok(NULL, "/");
        }

        sprintf(pathbuf, "%s %s.%s", "qmake", path, "pro");
        sprintf(exec, "%s%s", "./", path);
    }
    system("qmake -project");
    system(pathbuf);
    system("make");
    system(exec);

    return 0;
}
//该片段来自于http://outofmemory.cn

标签:c++,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2011-11-03 16:00:00 C++ 语言基础
  2. thinkpc 发表 2016-03-04 13:55:30 c++&nbsp;11 map基础value排序
  3. pansunyou 发表 2014-11-30 02:51:00 C++通用跨数据库访问方案之一: 基础组件cdbc
  4. linux@linux.cn (linu 发表 2016-11-04 02:37:00 C++ 程序员 Protocol Buffers 基础指南
  5. tanglei 发表 2014-05-28 15:08:01 struct与class区别联系
  6. 博主 发表 2016-06-28 05:17:59 Bazel C++ 基础[翻译]
  7. Herb Sutter 发表 2013-03-14 15:50:07 Words of wisdom: Bjarne Stroustrup
  8. SumitMSFT 发表 2013-03-22 22:12:00 Visual C++ Developer Survey
  9. bystander 发表 2013-04-11 10:50:25 模板栈以及中缀表达式求值(C++实现)
  10. mortoray 发表 2013-05-09 10:22:13 How to catch a “return” statement
  11. Qiang 发表 2011-09-08 14:06:00 Lexing Python Indentation using Spirit.Lex
  12. 博主 发表 2013-06-15 20:33:32 CloudStack云基础架构的一些概念