为四川人民祈祷! www.onefoundation.cn
logo of kjam.org
Archive: 2007-7

开始Objective-C编译

首先需要在OS X上安装Xcode,gcc也会被安装上

进入Terminal以后,我们可以执行的命令有gcc和g++,我们知道gcc用来编译c程序,g++用来编译c++程序

按照常规的想法,GCC会单独提供命令来编译objc程序,因为我们知道,Objective-C程序的扩展名是.m,Objective-C++程序的扩展名是.mm。但是GCC没有这么做,我们仍然使用gcc命令来编译objc程序

不过单纯使用gcc命令是不行的,还是需要一些参数

-fgnu-runtime是为objc准备的参数,由于objc在实现了很多动态的特性,使用了很多的运行时绑定,所以运行的时候需要有一个runtime,据说在新的版本中,runtime还支持GC

-ObjC 或者 -ObjC++ 这在标准的GCC中是不存在的,是Apple对GCC的扩展,用这个命令可以轻松的编译ObjC程序

我们用来编译main.m的命令就是gcc -ObjC -c main.m

上面两个选项当然只要用一个就可以了,更多的信息可以察看Xcode自带的GCC文档
http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/index.html
file:///Developer/ADC%20Reference%20Library/documentation/DeveloperTools /gcc-4.0.1/gcc/index.html

注意:如果不加-c选项,gcc会帮我们link程序,但是link的步骤会出错

由此可以看出,objc对c的扩展没有c++那么夸张,就像The Objective-C Programming Language中说的一样: "Moreover, Objective-C is a simple language. Its syntax is small, unambiguous, and easy to learn. "

察看各种reference,我们可以看到 .h的文件,但是找不到熟悉的.lib或者.a文件,objc使用framework这样的概念,如果我们要link一个使用了Foundation的源程序,就要加上参数-framework Foundation
comments: 0 | tags: objc   
by kernel1983

bzzar brazzr bazaar 终于拼对了

bazaar是一个十分拗口的名字,直到现在我都觉得拼写很不方便

几个月之前知道这个名字,接着又因为Mozilla更换了他们的VCS系统,开始使用我们正在谈论的这个bzr

一个星期以前又见到了这个名字,发现原来它是用Python写的,看来不需要像svn那样,需要先编译再使用了(要知道在OS X下面编译svn的痛苦,到现在binary还是跟我speak乱码)

因为好奇,读一读文档,所谓的DVCS(分布式版本控制系统)使用了和传统的系统怎样不同的概念。

分布式的说法很简单的说就是不需要服务器,我并不是说不需要网络,仅仅是不需要特定的服务器而已,换一种说法,你旁边的文件夹有可能就承担了服务器的功能

一般来说,传统的VCS都需要一个服务器,而且相互不兼容。p4绝对不可能连上svn的服务器,svn也不能上cvs。但是对于bazaar来说,一切都可以成为它fetch代码的源,任何fetch行为被称作branch

我们可以从电脑上的另外一个目录上branch,也可以是一个web站点,一个sftp,一个网上邻居(对于Windows,它可以被透明的当作一个文件夹)

第二个观点是,提交并不需要和服务器打交道。提交这个动作仅仅相当于给自己的工作打一个标记,bzr的submit不等于svn的submit。我们可以在任何时间submit,不管有没有网络

这样看起来,对于没有固定IP服务器,或者没有良好上网条件的家伙来说,bazaar是一个绝好的东西。至少,当开发团队成员只有你一个人,或者提着笔记本出去没有网络的地方半个月,bazaar能帮你省去不少麻烦

但是bazaar绝对不是给个人使用的玩具,想象一下mozilla你就知道bazaar可以展开工作的规模了

不要对分布式报有幻想,如果你想要和其他人一起工作,没有网络是绝对不行的。虽然你可以暂时没有网络,但是最终你需要网络来把一切工作成果汇总。或者你可以使用U盘

传统的提交工作,在这里就变成了merge,最终我们branch出来的一切终将回归主分支,这就是开发,这就是开发
comments: 1 | tags: bzr   
by kernel1983
1