【搭建开发环境】在 Windows XP 中参与开源项目,搭建 git 和 cygwin 开发环境
- 引言
只有一台 Windows XP 家用机,却想在诸如 Git@OSC 之类的开源社区参与开发,本文提供一个入门级的开发环境搭建指引。
涉及工具:Eclipse,EGit,Cygwin。
欢迎来到 lovickie 的博客 http://www.cnblogs.com/lovickie
- Git
git 是一个类似 svn 的版本控制系统。网上有很多基于 git 的在线代码托管平台,如 GitHub、OSC 等。由于伟大的 GFW,这里仅介绍如何使用 Eclipse 的 EGit 插件与 Git@OSC 交互。
1. 安装 Eclipse Kepler,然后进入菜单 Helper -> Eclipse Marketplace,稍等一会儿刷出插件市场,在 Find 中输入 EGit 后回车,搜到插件后点 Install。
为了方便看 C/C++ 程序,可以顺便把 CDT 插件也下载了。
2. 在 Eclipse 的 workspace 视图左侧空白处右键 -> Import,如下图选择 Git -> Projects From Git,点 Next。

然后选择 Clone URI(有的Eclipse版本只显示 URI),点 Next。显示如下对话框。

URI 中填写项目地址,在 git.oschina.net 中找个 C/C++ 的项目,右上角会有如下的可以复制项目地址之处。

当然了,这样 Import 下来的项目是没有权限提交的。正确的做法是在页面右上角点击 Fork 按钮,使得自己也获得该项目的一个分支,然后在自己页面的 Watched 中找到该项目,复制HTTPS地址。
然后填写在 OSC 注册的用户名密码,然后一路 Next,后面就是选择本地路径什么的,Wizard for project import 选择 Import as general project。
3. 左栏对修改过的源文件右键点Team,Commit 提交的是本地仓库,提交远程仓库的是 Push。Commit 的最后一步可以选择 commit & push。
至此已经将修改的代码提交到 OSC 上自己 Fork 的项目中。如果要提交给原作者,则在项目页面右上角点击 Pull Request,别忘了介绍一下自己改了些啥。
欢迎来到 lovickie 的博客 http://www.cnblogs.com/lovickie
- Cygwin
Import 了一个提供 Makefile 的 C 项目,考虑使用 Windows 上的类 UNIX 模拟环境 Cygwin 来编译和运行,而 Eclipse 只用来看代码和提交(尽管它其实也可以编译)。
1. 下载 cygwin-1.7.26 的 setup-x86.exe,安装后下面页面一定要选择 Install from Internet。即便之前安装过而想增加开发包也不要盲目选择 Install from Local Directory,想想看这是为什么?

如下图随便选择一个下载地址(注意千万不要多选)。

在下面页面选择开发包,单击那个转圈标志可以将 Default 修改为 Install / Reinstall / Uninstall,不熟悉的就不要乱改了,可以在 All -> Devel 中检查一下 make 是否被叉选(仅安装 Bin 即可,不必要叉选 Src 列)。
有时在这一步因为种种原因没有选中 make,会导致使用时没有 make 命令(这简直是不可饶恕的)。网上大多推荐去下载 make-3.81.tar.bz2 源码后再在 Cygwin 中编译生成 make,但是如果电脑的环境混乱(例如之前就安装过一些开发环境),很可能导致编译失败(产生诸如 lseek 定义冲突之类的错误)。
2. 下载安装时间有可能很久。安装完成后桌面上生成 Cygwin Terminal,打开便可以看见熟悉的 Unix 环境。

cd /cygdrive/e/git/xxx
make
chmod +x a.exe
./a.exe
我在检出的第一个项目中编译过程中遇到一个小问题,无法识别 Makefile 中的 -mno-cygwin,一查原来 gcc-4.7.0 以后已经移除了 -mno-cygwin,于是在 Makefile 中将它们都删了即可。
欢迎来到 lovickie 的博客 http://www.cnblogs.com/lovickie
- 结语
走了许多弯路,终于可以在一台本来只能玩游戏的家用 XP 上搞搞开发,想想还真是有点小激动呢。
【搭建开发环境】在 Windows XP 中参与开源项目,搭建 git 和 cygwin 开发环境的更多相关文章
- [转]如何使用VS 2013發布一個可以在Windows XP中獨立運行的可執行文件
https://read01.com/Mg337.html (台/湾的论坛,需要f/q) 1. 閱讀此文章的同學先看看我的另外一篇文章: 現在,我們深入探討一下: <如何使用VS 2013發布一 ...
- .NET开发人员值得关注的七个开源项目 .
NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...
- 如何参与开源项目 - 细说 GitHub 上的 PR 全过程
目录 一.概述 二.为什么要参与开源项目 三.为什么我想介绍如何 PR 四.我想参与开源项目,怎么开始? 4.1.寻找一个合适的开源项目 4.2.寻找贡献点 五.我要提交 PR,怎么上手? 5.1.第 ...
- Diycode开源项目 搭建可以具有下拉刷新和上拉加载的Fragment
1.效果预览 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式. 下拉会有一个旋转的刷新圈,上拉会刷新数据. 1.2.整体结构 首先底层的是BaseFragment 然后 ...
- 【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件
问题描述: 用VS2013写好一个程序,在本机上运行一切正常.但是如果直接把exe文件放到另一台机器上用,则会出现: Windows XP:不是一个正常的win32程序 Window 7:缺少msvc ...
- windows下 maven+selenium+testng项目搭建(七)
Selenium2.47.1 + Maven3.3.9 + TestNG6.8.8 windows准备好以下环境 1. Jdk,环境变量配置 2. maven环境3. eclipse 开发工具 ,ec ...
- 【C/C++开发】值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...
- 积极参与开源项目,促进.NET Core生态社区发展
今天早上在微信群里聊天聊到百度的SDK 已经支持.NET Core, 百度已经在3月份就支持了,想起当时还是我在他们的github上提的issue: https://github.com/Baidu- ...
- Android开源项目发现--- 工具类快速开发篇(持续更新)
1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...
随机推荐
- 四舍六入五成双银行家算法的 PHP和Javascript实现
四舍六入五成双 http://baike.baidu.com/view/1245064.htm?fr=aladdin 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则. 对于位数很 ...
- Android文字的阴影效果
<!-- android:shadowDx 阴影的水平偏移量 即往右移的距离 --> <!-- android:shadowDy 阴影的垂直偏移量 即往下移的距离--> < ...
- Mysql相关问答
问:我们团队中的一人想要使用 bigint 字段类型来代替 25-30 长度的 varchar 类型来存储 CRC64 数据,然后将索引也改成 bigint 的索引,这会节省索引的空间.请问这否是合理 ...
- bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 对[广义后缀自动机]的一些理解
先说一下对后缀自动机的理解,主要是对构造过程的理解. 构造中,我们已经得到了前L个字符的后缀自动机,现在我们要得到L+1个字符的后缀自动机,什么需要改变呢? 首先,子串$[0,L+1)$对应的状态不存 ...
- Hyper-V虚拟化--逻辑网络、VM网络、逻辑交换机
逻辑网络承接物理网卡和VM网卡 可以关联站点.主机组.VLAN.IP子网,配置静态IP地址池(虚机的PA地址从该静态IP地址池获取) 只有当逻辑网络中的网络站点关联了VLAN后,在VM中才可以选择VL ...
- IOS-Archiver文件归档(2)
Archiver是持久化数据的一种方式,他跟 Plist的差别在于他能持久化自己定义对象.但他没Plist那么方便. Archiver默认能持久化的数据有NSNumber,NSArray,NSDict ...
- Linux vmstat具体解释(系统IO)
1. vmstat 能够展现给定时间间隔的server的状态值,包含server的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况 vmstat 2 10 2: 每隔2s 10 : 统计10次 ...
- Bootstrap-风格的下拉按框:Bootstrap Select
Bootstrap Select 是一个jQuery插件,提供了Bootstrap 风格的下拉选择框.拥有许多自定义的选项,可多选. 效果图: 源代码: <select class=" ...
- [Angular 2] ROUTING IN ANGULAR 2 REVISITED
Let's say we have a list of contacts, click each contact, we can render a new route to get the detai ...
- cocos2d-x增加控制台程序代码
#include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" USIN ...