• 引言

  只有一台 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 开发环境的更多相关文章

  1. [转]如何使用VS 2013發布一個可以在Windows XP中獨立運行的可執行文件

    https://read01.com/Mg337.html (台/湾的论坛,需要f/q) 1. 閱讀此文章的同學先看看我的另外一篇文章: 現在,我們深入探討一下: <如何使用VS 2013發布一 ...

  2. .NET开发人员值得关注的七个开源项目 .

    NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...

  3. 如何参与开源项目 - 细说 GitHub 上的 PR 全过程

    目录 一.概述 二.为什么要参与开源项目 三.为什么我想介绍如何 PR 四.我想参与开源项目,怎么开始? 4.1.寻找一个合适的开源项目 4.2.寻找贡献点 五.我要提交 PR,怎么上手? 5.1.第 ...

  4. Diycode开源项目 搭建可以具有下拉刷新和上拉加载的Fragment

    1.效果预览 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式. 下拉会有一个旋转的刷新圈,上拉会刷新数据. 1.2.整体结构 首先底层的是BaseFragment 然后 ...

  5. 【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件

    问题描述: 用VS2013写好一个程序,在本机上运行一切正常.但是如果直接把exe文件放到另一台机器上用,则会出现: Windows XP:不是一个正常的win32程序 Window 7:缺少msvc ...

  6. windows下 maven+selenium+testng项目搭建(七)

    Selenium2.47.1 + Maven3.3.9 + TestNG6.8.8 windows准备好以下环境 1. Jdk,环境变量配置 2. maven环境3. eclipse 开发工具 ,ec ...

  7. 【C/C++开发】值得学习的C语言开源项目

    值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...

  8. 积极参与开源项目,促进.NET Core生态社区发展

    今天早上在微信群里聊天聊到百度的SDK 已经支持.NET Core, 百度已经在3月份就支持了,想起当时还是我在他们的github上提的issue: https://github.com/Baidu- ...

  9. Android开源项目发现--- 工具类快速开发篇(持续更新)

    1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...

随机推荐

  1. [置顶] 斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌

    大学期间,我在别人的基础上,写了一个简易的斗地主程序. 主要实现了面向对象设计,洗牌.发牌.判断牌型.比较牌的大小.游戏规则等算法. 通过这个斗地主小项目的练习,提高了我的面向对象设计能力,加深了对算 ...

  2. js定时显示广告代码

    这是一则定时显示广告的javascript代码,当然也可以定时显示某一区块内容,很实用. 代码如下: function strToDate(str, ext) { if (str == null || ...

  3. github上值得关注的前端项目

    https://segmentfault.com/a/1190000002804472

  4. ios8 关于UIAlertController 代替UIActionsheet

    self.alertController=[UIAlertController alertControllerWithTitle:@"请选择\n\n\n\n\n\n\n\n\n\n\n\n\ ...

  5. oncopy和onpaste

    在Javascript中,有对应的事件能够监听复制和粘贴,那就是oncopy和onpaste. oncopy: demo: <body oncopy="alert('不能复制');re ...

  6. mongdb使用场景

    你期望一个更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度.如果你需要加载大量低价值的业务数据,那么MongoDB将很适合你的用例.但是必须避免在要求高事务安全的情景下使用Mo ...

  7. java05

    RGB(红绿蓝)- 全0就是黑色,全是最高255就是白色. //第一步类 package cn.bjsxt.test; import java.awt.Color; import java.awt.F ...

  8. INSTALL_FAILED_VERSION_DOWNGRADE报错

    error: INSTALL_FAILED_VERSION_DOWNGRADE 原因:模拟器或者实际的device中已经安装了同名的app,且本次的版本并不高 解决:在模拟器中卸载此同名应用,之后再运 ...

  9. 模拟接听电话的方法,兼容华为android5.0以上设备

    /** * 通过反射调用的方法,接听电话,该方法只在android 2.3之前的系统上有效. * * @param context */private static void answerRingin ...

  10. BULK INSERT将CSV或TXT文件导入到SQL Server

    CSV代表逗号分隔值,有时也被称为逗号分隔的值.而 如果加载txt文件,然后文件应该有逗号分隔的值.和文件应该是这样 下面是该脚本以创建表: CREATE TABLE Employee( Id int ...