美文网首页
利用Qmake创建makefile

利用Qmake创建makefile

作者: Fitz_W | 来源:发表于2018-08-07 00:46 被阅读0次

最近工作当中遇到小需求,simulink生成各个功能模块的代码,为了保证在递交给底层所有.c和.h文件接口上没有问题,因此在生成代码过后先自己用C编译器编译一次。本来前同事是利用VS,创建工程,把源代码加进去生成的,但是我觉得太麻烦了,每个人想编译的时候都要安装巨大无比的VS。

实际上,只需要mingw的gcc命令即可完成工作。不过核心问题在于,一共有30多个功能模块分别单独生成代码,源代码分布在30多个文件夹下面,并且模块之间有文件关联,因此需要写makefile来完成关联编译。

由于不是计算机科班出身,对makefile的语法本身不是特别的熟悉。在网上找了一些模板后也存在这样那样的问题,实在不想去完整的看一遍makefile的语法,就另辟蹊径利用QT的qmake来生成makefile。

构建顺序

总的来说,为了完成此项工作,过程如下图所示:

Step 1:

打开QT,创建C Application工程,放在同源代码的路径下,接下来全程下一步就好了。这时候QT会创建pro文件到该文件夹下。

建立工程

Step 2:

右键点击该工程顶层文件夹,选择加入存在的路径,然后定位到源代码路径,点击start parsing,就可以扫描源代码。OK之后可以看到pro文件中加入所有源代码。

加入待编译源代码

Step 3:

打开pro文件,加入INCLUDEPATH +=,填上所有H文件所在路径,格式和SOURCES+=一样。(由于文件太多,我是用python写了个小脚本,把路径打印出来粘贴到上面的)

添加includepath

Step 4:

保存pro文件,运行Qmake。在命令行输入qmake Test.pro(我创建的工程名字为Test),可以看到该路径下生成了好几个文件。

Qmake生成的文件

经过对三个makefile代码的查看,发现Makefile去调用Makefile.Debug和Makefile.Release所以最后我直接把使用Makefile.Debug,把里面关于QT的代码都删除,保证只编译我们需要去编译的文件。(Makefile.Debug本身并不是makefile文件,我是复制里面的代码到makefile文件夹下)

Step 5:

编写bat文件,主要是创建debug文件夹(存放.o文件),编译报错终止编译,编译结束运行exe文件,代码如下。

echo off
if not exist debug md debug
mingw32-make
if %errorlevel%  equ 0 (
    echo task编译完毕
    del debug\*.o
    echo 删除中间文件完毕
    start debug\task.exe 
) else (
    del debug\*.o
    echo 编译错误,请检查源文件
)
pause

最后保留object_script.Test.Debug文件,删除其余的即可。剩下的文件如下所示:


保留文件

因此大功告成,之后每次只需要点击bat文件即可。(由于源代码是simulink生成的,文件名和结构基本上不会发生变化,所以比较适合固定的Makefile文件。如果经常会加源文件该方法就不太适用了)

相关文章

  • 利用Qmake创建makefile

    最近工作当中遇到小需求,simulink生成各个功能模块的代码,为了保证在递交给底层所有.c和.h文件接口上没有问...

  • qmake 手册 000 简介

    qmake 手册 qmake 工具有助于简化跨平台的开发项目的构建过程。它用于自动生成 Makefile,借助 q...

  • QMake概述

    qmake将项目中的文件信息扩展为Makefile,该Makefile执行编译和链接所需的命令。 项目描述 项目由...

  • make-编译-链接那些事儿

    今天翻了下qt的qmake manual,就心血来潮地搜了些make的博客看看。 着重Makefile经典教程(掌...

  • 03--Qt构建、运行、qmake的区别

    标签(空格分隔): Qt qmake:根据实际环境创建项目文件.pro 并且运行qmake生成适当的Makef...

  • Qt pro

    注释 从“#”开始,到这一行结束。 2.模板变量告诉qmake为这个应用程序生成哪种makefile。 下面是可供...

  • 打开QT自动生成的Makefile中gcc输出

    Makefile由qmake执行对应的pro文件生成,在make编译时许多的gcc信息默认不会输出,比如想定位一些...

  • qmake 手册 003 创建项目文件

    qmake 手册 003 创建项目文件 项目文件包含 qmake 构建应用程序、库或插件所需的所有信息。通常,我们...

  • Qt PRO 文件写法

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如...

  • 批处理快速删除Makefile

    是什么 最近在开发过程中,使用了Qt的qmake快速生成Makefile以及VS工程。但是使用Qt有一件事很麻烦,...

网友评论

      本文标题:利用Qmake创建makefile

      本文链接:https://www.haomeiwen.com/subject/lfwnvftx.html