Gyp解析文档.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Gyp解析文档Gyp解析文档

用gyp和ninja构建编译项目 1、一个简单的例子 1)配置ninja a)到/developers/how-tos/install-depot-tools下载depot-tools(google集成的一套便于开发的使用的开源工具); b)下载完成后,将depot-toos所在的路径加入环境变量; c)命令行里面运行ninja命令如下,如有版本信息提示说明ninja的环境配置成功: 说明: 也可以到ninja的官网上下载安装,按照上面的提示安装ninja,安装后的版本可能会第一些。 2)配置gyp a)到/group/gyp-developer下载gyp所用文件; b)下载完成后,将gyp所在的路径加入环境变量; c)命令行里面运行gyp,会有如下提示,说明gyp的环境配置成功: 3)构建编译一个“Hello,world!”的程序 a)编写一个hello.c的文件如下: b)编写一个hello.gyp的文件如下: c)执行hello.gyp文件,生存build.ninja文件和hello.ninja文件,命令如下: 该命令执行完毕后,会在当前目录下生成一个out/Default的文件夹,该out/Defualt下面又包含了一个build.ninja文件和obj文件夹,obj文件夹下面会有一个hello.ninja的文件。 d)生成可执行程序,执行命令如下: 该命令执行完毕后,会在out/Defult下面生成可执行程序hello,执行该程序: 程序执行完毕,正常执行。 2、构建文件(.gyp文件)的解析 构建文件以.gyp和.gypi(gyp included)为后缀,构建文件的内容就是python的一个数据结构,可以认为是json,但和json有两点不同:1)构建文件中允许#出现,作为注释;2)构建文件允许有括号后面加逗号(包括“]”和“}”)结束。这样做的一个方便结果就是为了读取构建文件信息, 只需要eval一下文件的内容即可,就可以得到这个构建文件的描述了。 2.1、关键字targets targets,构建目录列表的关键字。targets关键字包含下面的重要属性: actions,数据类型为list,执行命令编译程序需要执行的命令,在这里设置。 all_dependent_settings:数据类型为dict,如果依赖这个targets的话,需要使用的设置 configurations:数据类型为dict,生成工程配置文件的路径在这里设置 copies:类型为list,用于执行普通的复制行为。 defines:数据类型为list,对应与c/c++的defines dependencies:数据类型为list,依赖的对象。 direct_dependent_settings:直接依赖这个targets的话,需要使用的设置 include_dirs:数据类型为list,头文件目录 libraries:数据类型为list,目标需要链接的库 link_setting:数据类型为dict,依赖这个targets,需要使用的链接参数 sources:数据类型为list,源文件,要编译的源文件都放在这里 target_conditions:数据类型为list,和conditions类似,但是是在变量完全之后来判断 target_name:数据类型为string,生成目标的名字 type:目标类型,现在只支持static_library(静态库),shared_library(动态库),executable(可执行程序)和none 2.1.1 、关键字actions actions是targets里面的一个特殊属性,主要用来target的自定义操作,每一个target是一个dict,主要包含四个属性: action_name:sting类型,操作的名称 input:list类型,输入的文件 outputs:list类型,输出文件 actions:list类型,执行的命令 【例子】 a)写一个pyt

文档评论(0)

yyanrlund + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档