【搭建开发环境】在 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 ...
随机推荐
- Linux的五个查找命令:find,locate,whereis,which,type
使用电脑的时候,经常需要查找文件. 在Linux中,有很多方法可以做到这一点.国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条.大多数程序员,可能经常使用其中的2到3条,对这5条命令 ...
- GridControl 复合表头(多行标题)
说明: 最好是通过编辑视图进行设计,后台编码有点麻烦. 例图:(上面的GC是后台编写 ,下面的是设计器设计) 后台代码编写: public void InitCtrl() { DevExpress.X ...
- 使用ajax代替iframe
相信大多数程序员都跟iframe打过交道,iframe简单,好用.在我用的过程中比较苦逼的是关于iframe高度的设置. 由于子页面内容不确定,页面高度也不确定.于是开始网上的各种搜索,一般有两种:一 ...
- android 开源项目学习<二>
roottools: RootTools gives Rooted developers easy access to common rooted tools... https://code.g ...
- cocos2d-x 2.0 拖尾效果分析
转自:http://game.dapps.net/gamedev/game-engine/7281.html 在Cocos2d-x中,拖尾效果有一个专门的类CCMotionStreak来实现.下面我们 ...
- Linux下用来获取各种系统信息的C++类
#include <vector> #include "sys/config.h" SYS_NAMESPACE_BEGIN /*** * 用来获取系统.内核和进程的各类 ...
- [Javascript] Object.freeze() vs Object.seal()
let person = { firstName: "Zhentian", lastName: "Wan" }; /*Object.freeze() makes ...
- “:Choose a destination with a supported architecture in order to run on this device.”
我在编译从GitHub上clone下来的<TweeJump>时,出现如下错误:":Choose a destination with a supported architectu ...
- UIStackView 看我就够了
介绍 UIStackView 是 iOS9新增的一个布局技术.熟练掌握相当节省布局时间. UIStackView 是 UIView 的子类,是用来约束子控件的一个控件.但他的作用仅限于此,他不能用来呈 ...
- file is missing from source location:c\temp\batang.ttc
打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 在右侧找到 Micr ...