美文网首页 webrtcWebRTC
WebRTC中的编译工具 gyp 、gn 与 ninja

WebRTC中的编译工具 gyp 、gn 与 ninja

作者: 音视频直播技术专家 | 来源:发表于2018-08-13 15:02 被阅读96次

什么是 gyp

GYP (Generate Your Project) ,用于产生跨平台的项目文件。如在 Mac 下产生 XCode 的工程文件,在Windows下生成 VS 工程文件,以及 Ninja 文件。

什么是 gn

GN(Generate Ninja),它是 GYP 的替代工具。由于GN是用C++编写,比起用 python写的 GYP 快了很多。

什么是 cmake

相对于 gyp 和 gn, 大家可能对 cmake 更熟悉点。它也是一种可以产生跨平台工程文件和 makefile文件的编译工具集。 webrtc最开始也是使用的 cmake /scons 作为编译工具的,但后来发现产生工程文件和编译速度太慢,所以就自己写了一套工具(gyp/ninja)。

什么是 scons

scons 与 cmake是一类工具,可以产生跨平台的工程文件以及makefile文件。

什么是 ninja

ninja,它与 make 类似,也是一种编译控制工具,它可以根据用户的需求进行编译。

小结

从上面的介绍大家可以了解到, cmake/scons/gyp/gn 这几个工具是同一类的,可以产生跨平台的工程文件,以及编译控制文件(如 makefile 或 .ninja 文件);而 make/ninja 是同一类工具,用于根据用户的要求对源文件进行编译,可以将它们称为编译控制工具;而具体的编译工具是指的 gcc/ clang/ msvs等工具了。

上面的几个工具非常容易混淆,大家一定要仔细区别。谢谢!

相关文章

  • WebRTC中的编译工具 gyp 、gn 与 ninja

    什么是 gyp GYP (Generate Your Project) ,用于产生跨平台的项目文件。如在 Mac ...

  • Flutter engine编译&调试

    概念 Flutter Engine使用GN和Ninja进行编译,GN编译后生成Ninja的构建文件,Ninja将输...

  • GN的编译及使用

    编译ninja 将目录/home/wangzhen/WorkSpace/ninja加入到环境变量中 编译GN 将目...

  • Ninja编译介绍

    因为webrtc是用ninja编译的,所以学习了下Ninja。 Ninja是一种类似GNU make的编译系统。 ...

  • gn+ninja实践demo

    背景 最近在研究openharmony系统的编译原理,使用了gn+ninja工具,为了更好的理解,就在网上搜索并动...

  • windows下安装node-gyp

    什么是node-gyp? gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时...

  • iOS Webrtc修改库名

    1、修改BUILD.gn[http://build.gn/],位置webrtc/src/sdk/BUILD.gn[...

  • macOS编译webrtc流程

    webrtc文章比较杂,比较琐碎,查阅了大量资料拼接此文档 编译环境为mac电脑 gn 和nijia安装(depo...

  • 编译工具 Ninja 介绍

    什么是Ninja Ninja是使用C++写的开源项目。 http://martine.github.io/ninj...

  • WebRTC编译器GN介绍

    GN 使用gn编译项目的过程: 编写.gn文件模块化各个模块,分别写一个build.gn,添加进主目录的build...

网友评论

本文标题:WebRTC中的编译工具 gyp 、gn 与 ninja

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