GYP(Generate Your Project)一个很有价值的构建系统
来源:互联网 发布:淘宝抢购要刷新吗 编辑:程序博客网 时间:2024/05/14 02:34
转载自:http://blog.csdn.net/bertzhang/article/details/7387954
因为阅读chromium的需要,也熟悉了一下chromium使用的GYP构建系统,其实这个系统和我原来所在的一个公司的构建系统非常相似,因此学习起来也比较容易。
首先看一下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 Project)介绍
- GYP工具Generate Your Projects
- chromium之gyp构建系统
- chromium的gyp构建过程
- chromium构建系统——gyp
- chromium构建系统——gyp
- chromium构建系统——gyp
- 一个很有价值的研究成果
- WebKit之chrome的构建系统工具gyp(类比于qmake)
- 如何打印gyp构建系统中的变量值
- 如何策划一个有价值的网站
- 做一个有价值的软件开发者
- 发现一个比较有价值的论坛
- Your project
- Hudson--一个使用简单的构建系统
- 圆一个构建大系统的梦
- QT QTextedit 学习笔记
- wsprintf sprintf printf
- <每日一句英语> 2012-9-19
- VxWorks的环境配置
- Qt检测IP地址正则表达式
- GYP(Generate Your Project)一个很有价值的构建系统
- 第七章 业务数据库的管理(七)-- 定义打印表格
- 文件基本操作之1--读写练习
- vc6带参数调试c/c++代码
- uboot移动目录后编译出错解决方法
- MySQL不区分大小写(Linux与WINDOWS)
- Android Frameworks目录
- SQL Server 无文档的东西(1)
- X Window 和GNOME、KDE的区别和联系?