简单来说, GNUstep 是实作 OpenStep 介面的开放软体 (Open Source) 计划, 目标为提供跨平台的物件导向程式开发环境.
早在 1985 年, Steve Jobs 离开苹果电脑 (Apple) 后成立了 NeXT 公司, 并于 1988 年推出了 NeXT 电脑, 使用 NeXTStep 为作业系统. 在当时, NeXTStep 是相当先进的系统. 以 Unix (BSD) 为基础, 使用 PostScript 提供高品质的使用者图形介面, 并以 Objective-C 语言提供完整的物件导向环境.
尽管 NeXT 在软体上的优异, 其硬体销售成绩不佳, 不久之后, NeXT 便转型为软体公司. 1994 年, NeXT 与太阳 (Sun Microsystem) 合作推出 OpenStep 界面, 目标为跨平台的物件导向程式开发环境. NeXT 接着推出实作 OpenStep 介面的 OPENSTEP 系统, 可在 Mach, Microsoft Windows NT, Sun Solaris 及 HP/UX 上执行. 1996 年, 苹果电脑买下 NeXT, 做为苹果电脑下一代作业系统的基础, OPENSTEP 系统便演进成为 MacOS X 的 Cocoa 环境.
在 1995 年, 自由软体基金会 (Free Software Fundation) 开始了 GNUstep 计划, 目的在实作 OpenStep 介面, 以提供 Linux/BSD 系统一个完整的程式发展环境. 但由于 OpenStep 介面过于庞大, 开发人力不足, 及许多技术在当时尚未成熟 (如 Display PostScript), 所以直到目前为止, GNUstep 才算是一个完整的程式开发环境.
尽管 OpenStep 早在 1994 年便提出, 其介面及架构在现今仍相当先进及实用, 使得开发 GNUstep 程式相当容易.
GNUstep 使用 Objective-C 语言, 是 C 语言加上 SmallTalk 的物件导向的功能. 结合两者的优点, 又不至于像 C++ 如此复杂.
GNUstep 提供两个主要的程式库, Foundation 及 AppKit. Foundation 处理非图形介面的部份, 如字串, 档桉, 网路, 基本资料结构, 多行绪等, 又称之为 GNUstep Base. AppKit 则处理图形介面的部份, 包含视窗, 使用者介面等, 又称之为 GNUstep GUI.
由于 GNUstep 具有跨平台的特性, 有关绘图及字型的部份, 则交由 GNUstep Back 来处理. 使用者可依所使用的作业系统, 选择适当的后端处理 (Backend). GNUstep GUI 会自行处理与 Back 相关的功能, 程式开发者只要使用 GUI 程式库, 便可适用于各种后端上, 完全不用考虑平台问题.
目前 GNU GCC 3.x 支援 Objective-C 语言, GNUstep 则提供 GNUstep Make 来简化编译 Objective-C 程式. GNUstep Make 提供类似 Makefile 的功能, 称为 GNUmakefile. 与 Makefile 相比较之下 GNUmakefile 简单许多.
综合上述, GNUstep 实作 OpenStep 介面, 该介面已在商业市场上使用多年, 目前并演进成 MacOS X 的 Cocoa 环境. GNUstep 包含四个主要部份, 统称为核心 (Core):
1. GNUstep Make: 提供类似 Makefile 的功能, 称为 GNUmakefile, 较 Makefile 好用许多.
2. GNUstep Base: 提供 OpenStep 的 Foundation 程式库, 处理非图形介面的功能.
3. GNUstep GUI: 提供 OpenStep 的 AppKit 程式库, 处理图形介面的功能.
4. GNUstep Back: 提供与作业系统相关的后端处理, 提供 GNUstep GUI 有关绘图及字型的功能.
简单的说 GNUstep 其实也是要打造类似 KDE 或 GNOME 的整合式环境,只是说它用 的程式语言是 Object C , 而本身也有一套 GUI Toolkits 来开发,当然先进的物件导向设计是最让人印象深刻的.
一、安装GNUstep for Windows Windows installer http://wwwmain.gnustep.org/experience/Windows.html GNUstep MSYS GNUstep Core GNUstep Devel 三个安装包都需要下载,GNUstep MSYS和GNUstep Core相当于Objective-C的运行时,而GNUstep Dev
GitHub地址 简单来说,GNUstep 是实现 OpenStep 接口的开放软件 (Open Source) 计划,目标为提供跨平台的面向对象程序开发环境。 C 语音有Dennis Ritchie于20世纪70年代早期首创,20世纪70年代晚期才获得广泛支持并流行开来。UNIX 操作系统的普及也促进C 语音的普及,UNIX 完全有C 语音编写。 Objective-C 主要由 Stepston
1、安装GCC: (1)我安装的是gcc 4.3.1,首先安装gmp-4.2.2和mpfr-2.3.1,mpfr带一个patch,这些东东是干什么用的我也不清楚; (2)因为我的gmp和mpfr都是安装在/usr/include下,所以configure时不需要指定--with-mpfr=mpfr目录--with-gmp=gmp目录。运行configure --prefix=/usr --libd
http://www.gnustep.org/ The purpose of this project is to create a free and open version of the Cocoa (formerly known as NeXTSTEP/OpenStep) APIs and tools for as many platforms as possible. GNUstep
第一个错误: E127 Error No X11 libraries/headers were found for compiling GNUstep GUI. You may have X11 installed, but not the developer packages, which are required for compiling anything that uses X. If y
gcc -o main main1.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base 1、cd /home 2、gcc -o helloworld helloworld.m -I/
在windows环境下安装GNUstep,运行objective-c程序,今天试了一下,记录一下操作步骤, 1、登陆http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/网站 2、下载一下三个文件 gnustep-msys-system-0.30.0-setup.exe gnu
1、安装gnustep比较简单,使用yum安装 # yum install gnustep* 2、在~/.bashrc文件中指定gnustep makefiles目录 GNUSTEP_MAKEFILES=/usr/lib64/GNUstep/Makefiles export GNUSTEP_MAKEFILES 3、在项目根目录编写GNUmakefile文件,内容如下: include $(GNUS
上周使用GNUstep编译android 的.so没问题,这周同样的代码和android ndk 编译失败 错误命令: $ \d\setup\android-ndk-r9c\ndk-build \d\android\android_workspace\android-test-jni\jni 错误信息: ----------------------------------------------
需要的软件和工具: 1. codeblocks-13.12-setup.exe 2. gnustep-msys-system-0.25.1-setup.exe http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-msys-system-0.25.1-setup.exe 3. gnustep-core-0.25.0-se
最近看了很多文章,互联网发达今天,想找一篇对的文章还真TM难, 再次BS一下,那些不知所云就转贴的竖子,本来以为很简单的 objective c 在 gcc上的编译问题,因为gcc很本就可以支持objective c 的,花了两天的时间搞定, 不得不再次感叹互联网的强大 gcc是可以,但是不用GNUstep 而写obj c 是没有什么意义,如果用GNUstep 那gcc老的方法就会有问题,最烦人的
最近想学下 Objective C, 于是琢磨怎么在windows 下搭建个开发环境。 1、下载:在这个地址下载以下包: GNUstep MSYS System、GNUstep Core、GNUstep Devel、Gorm。 http://www.gnustep.org/windows/installer.html 下载后的文件为exe 2、安装: 1) 按以
面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。 提到面向对象,自然会想到面向过程,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候依次调用就可以了。面向对象则是把构成问题的事务按照一定规则划分为多个独立的对象,
面向对象 程序设计方法 程序设计描述系统如何通过程序来实现的过程,其为一种设计方法与语言实现无关。常见的设计方法有面向流程与面向对象。 面向过程 以程序的过程为中心,采用自定而下逐步细化的方法来实现。常见的面向过程语言有 C、Fortran、Pascall。 面向对象 将对象作为程序的基本单元,将程序分解为数据和操作的集合。常见的面向过程语言有 smalltalk(也是 Objective-C 的
面向对象 三大特性是:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防
之前的文章都是使用Sublime Text来编写 Python 的,主要是为了更好的熟悉和了解 Python ,可是开发效率不高,也不方便,从这章开始,改为使用 Pycharm 了,在之前的篇节集成开发环境(IDE): PyCharm中介绍了 PyCharm ,如果如要激活软件可以通过授权服务器来激活,具体看这个网址。JetBrains激活(http://www.imsxm.com/jetbrai
前面两章我们介绍了函数和struct,那你是否想过函数当作struct的字段一样来处理呢?今天我们就讲解一下函数的另一种形态,带有接收者的函数,我们称为method method 现在假设有这么一个场景,你定义了一个struct叫做长方形,你现在想要计算他的面积,那么按照我们一般的思路应该会用下面的方式来实现 package main import "fmt" type Rectangle st
对象的属性 数据属性:[[Configurable]](可否delete或修改属性特性)、[[Enumerable]](可否被for-in)、[[Writable]](可否修改)、[[Value]] 访问器属性: [[Configurable]]、[[Enumerable]]、[[Get]]、[[Set]], 修改属性: 使用Object.defineProperty( 对象,属性名,描述符对象