GYP(Generate Your Project)一个很有价值的构建系统
2012-03-23 17:00
141 查看
因为阅读chromium的需要,也熟悉了一下chromium使用的GYP构建系统,其实这个系统和我原来所在的一个公司的构建系统非常相似,因此学习起来也比较容易。
首先看一下gyp的安装,如果你使用ubuntu系统那么安装可以通过下面的命令完成:
下面我们就通过一个例子来看看gyp的使用,假设我们编写三个文件hello_world.cc, my_class.h, my_class.cc这三个文件内容如下:
hello_world.cc
my_class.h
my_class.cc
下面我们编写构建文件foo.gyp
foo.gyp
然后运行命令:
其中--depth=.虽然没什么用,但必须要加上,参考文献[1]说是chromium遗留问题
命令运行后会生成Makefile文件,这样就可以使用make进行编译了。
注意:最后}后面没有“,”, 开始这个地方写错了,总是出错,耽误了不少时间。
如果涉及到库、编译依赖、跨平台等问题可以详细参考文献[2],这里不一一说明,本文主要演示一个简单的使用过程,更多功能可以参考文献[2]来实现。
文献1比较了gyp和cmake等,也有一定的参考价值。
参考文献:
[1]http://blog.xiaogaozi.org/2011/10/29/introduction-to-gyp
[2]http://code.google.com/p/gyp/wiki/GypUserDocumentation
首先看一下gyp的安装,如果你使用ubuntu系统那么安装可以通过下面的命令完成:
sudo apt-get install gyp
下面我们就通过一个例子来看看gyp的使用,假设我们编写三个文件hello_world.cc, my_class.h, my_class.cc这三个文件内容如下:
hello_world.cc
#include <stdio.h> #include "my_class.h" int main(int argc, char** argv) { printf("hello world\n"); MyClass my_class(100); my_class.Fun1(); }
my_class.h
class MyClass { public: MyClass(int value) : value_(value) {} void Fun1(); private: int value_; };
my_class.cc
#include "my_class.h" #include <stdio.h> void MyClass::Fun1() { printf("the value is %d\n", value_); }
下面我们编写构建文件foo.gyp
foo.gyp
{ 'targets': [ { 'target_name': 'foo', 'type': 'executable', 'sources': [ 'hello_world.cc', 'my_class.h', 'my_class.cc', ], }, ], }
然后运行命令:
gyp --depth=. foo.gyp
其中--depth=.虽然没什么用,但必须要加上,参考文献[1]说是chromium遗留问题
命令运行后会生成Makefile文件,这样就可以使用make进行编译了。
注意:最后}后面没有“,”, 开始这个地方写错了,总是出错,耽误了不少时间。
如果涉及到库、编译依赖、跨平台等问题可以详细参考文献[2],这里不一一说明,本文主要演示一个简单的使用过程,更多功能可以参考文献[2]来实现。
文献1比较了gyp和cmake等,也有一定的参考价值。
参考文献:
[1]http://blog.xiaogaozi.org/2011/10/29/introduction-to-gyp
[2]http://code.google.com/p/gyp/wiki/GypUserDocumentation
相关文章推荐
- GYP(Generate Your Project)一个很有价值的构建系统
- GYP(Generate Your Project)一个很有价值的构建系统
- GYP工具Generate Your Projects
- 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)
- flash socket 从头开始构建一个web即时通讯系统 - 客户端
- 构建一个完备的问答系统需要做的事情
- 安装GYP(Generate Your Projects)
- nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)
- 创业公司如何构建一个分布式文件存储系统
- 如何用Maven构建一个project(一)—eclipse工具包配置
- .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
- 构建一个大型分布式系统的影响因素
- 菜鸟如何构建一个入门级***检测系统
- 克隆 BSP –构建并运行一个新的WinCE 映像系统
- 构建一个分布式操作系统的简单方案—答陈硕的“分布式系统中的进程标识”一文
- 构建一个比较完善的监控系统 推荐
- 如何用Maven构建一个project(二)—创建Web项目
- 如何构建一个简单的CAAS系统
- 如何构建一个高可用的IM系统
- 如何使用国际开源项目构建一个完整的GIS(地理信息)应用系统