• make makefile cmake qmake 区别


    https://www.zhihu.com/question/27455963/answer/36722992

    1、CMakeLists.txt由用户完成

    2、cmake根据CMakeList.txt文件生成makefile;makefile文件是基于平台的;

    3、make工具:可以看成一个智能的批处理工具,它本身没有编译和链接功能,而是用类似于批处理的方式,通过调用makefile文件中用户指定的命令在进行编译和链接;

    4、makefile:简单来说相似一首歌的乐谱,而make工具就是指挥家;make工具就根据makefile中的命令进行编译和链接的;

      在makefile命令中就包含了调用gcc(或别的编译器)去编译某个源文件;makefile文件是基于平台的;

    5、当你的程序只有一个源文件时,可以直接用gcc命令编译它;

    6、qmake:qmake是区别于cmake存在的,是针对QT开发框架的;

    (1)QT程序进行编译前就必须调用moc(The Meta-Object Compiler)和uic(User Interface Compiler)对源文件进行预处理,然后再调用编译器进行编译;QT是对C++进行了扩展,你写的一行代码,QT在背后帮你写了千百行,而这些多出来的代码就是靠qt专有的moc和uic编译器来进行处理;

    (2)qmake是根据Qt工程文件(.pro)来生成对应的makefile的;这种专用的makefile文件能自动调用moc和uic对源程序进行预处理和编译;

    (3)qmake也是跨平台的,跟cmake一样能对应各种平台生成对应的makefile文件;

    (4)qmake也可以独立于它的IDE,也可以用在非QT工程上面,照样可以生成普通的makefile,只要再pro文件中加入CONFIG -= qt就可以了;

    (5)cmake同样支持QT程序的,也能生成针对qt程序的那种特殊makefile,只是cmake的CMakeLists.txt写起来比qmake的pro文件复杂;

  • 相关阅读:
    汇编实现点亮Led灯(2440)
    BootLoader(2440)核心初始化代码
    学习单片机的正确方法(转载)
    ARM-汇编指令集(总结)
    BootLoader的架构设计
    统计单词数(WordCount)
    OPcache
    phpcon china 2017听讲总结
    php-fpm进程内存泄漏
    mysql字符串的隐式转换导致查询异常
  • 原文地址:https://www.cnblogs.com/wllwqdeai/p/15337789.html
Copyright © 2020-2023  润新知