0%

摘抄make makefile cmake qmake都是什么,有什么区别

2018年12月23日 下午1:56

make makefile cmake qmake都是什么,有什么区别? - 知乎

  1. Make,makefile工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能

    • 其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标依赖的文件更旧,命令才会被执行。
    • 由此可见,Makefile和make可适用于任意工作,不限于编程。比如,可以用来管理latex
  2. cmake是跨平台项目管理工具,它用更抽象的语法来组织项目。

    • 虽然,仍然是目标,依赖之类的东西,但更为抽象和友好
    • 从同一个抽象规则出发,它为各个编译器定制工程文件
      • 在windows下它会支持生成visual studio的工程,在linux下它会生成Makefile,甚至它还能生成eclipse工程文件。
  3. qmake产生的原因:

    1. 你在进行QT程序编译前就必须先调用moc和uic对Qt源文件进行预处理,然后再调用编译器进行编译*。上面说的那种普通makefile文件是不适用的,它没办法对qt源文件进行预处理。
    2. 你可以用Qt简简单单就实现非常复杂的功能,是因为Qt对C++进行了扩展,你写一行代码,Qt在背后帮你写了几百上千行,而这些多出来的代码就是靠Qt专有的moc编译器(The Meta-Object Compiler)和uic编译器(User Interface Complier)来重新翻译你那一行代码。
  4. Qmake工具就是Qt公司制造出来,用来生成Qt 专用makefile文件,这种makefile文件就能自动智能调用moc和uic对源程序进行预处理和编译。qmake当然必须也是跨平台的,跟cmake一样能对应各种平台生成对应makefile文件。

  5. qmake和cmake有什么区别?

    1. cmake也是同样支持Qt程序的,cmake也能生成针对qt 程序的那种特殊makefile,
    2. 只是cmake的CMakeLists.txt 写起来相对与qmake的pro文件复杂点

此项目用qmake会出错,原因未知: