一、安装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 Devel相当于XCode中使用的Foundation和UIKit。
GNUstep Devel依赖于GNUstep MSYS和GNUstep Core才可以运行。
二、测试GUI运行情况
上面的安装包默认不安装任何图形界面的程序。
只能通过开始菜单->GNUstep->Shell启动MSys命令行执行一些命令行指令。
基本操作和MinGW相同,唯一不同的是在
C:\GNUstep\GNUstep\System\Tools
有一些特有的程序,如openapp。
在官网上有个现成的示例代码包。
http://wwwmain.gnustep.org/resources/downloads.php?site=ftp%3A%2F%2Fftp.gnustep.org%2Fpub%2Fgnustep%2F
搜索GNUstep Development Tools下的Examples:
ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-examples-1.3.0.tar.gz
下载解压后,切换到指定目录下执行make即可编译,用openapp运行
$ tar xzf gnustep-examples-1.3.0.tar.gz
$ cd gnustep-examples-1.3.0
$ cd gui
$ cd Calculator
$ make
$ make print-gnustep-make-help
$ Calculator.app/Calculator.exe
$ openapp ./Calculator.app
三、使用gdb调试
HelloWorld命令行程序的编写、编译和调试方法参见:
http://www.nongnu.org/gstutorial/zh_TW/index.html
NSLog的输出需要gdb(直接执行程序是无法看到输出的),所以必须先了解gdb的使用方法(通常的做法是用.gdbinit编写调试脚本,所以必须搞清楚这个gdb支持哪些命令)。
1. 帮助:
http://sourceware.org/gdb/onlinedocs/gdb/
http://www.nongnu.org/gstutorial/
http://www.nongnu.org/gstutorial/en/index.html
http://www.nongnu.org/gstutorial/zh_TW/index.html
2. 相关问题
1) .gdbinit文件需要用echo创建。(或者用touch命令)
2) 用gdb -ex "help all" -ex "quit" > gdbhelp.txt查看gdb支持的指令(尽量写在.gdbinit文件中,在执行gdb时自动执行)。
3) GNUmakefile不能改名为Makefile,否则执行make后会出错。
4) 只有使用gdb时才可以看到NSLog的输出。
3. 参考代码和命令
.m文件(objc代码)
//prog1.m
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];
return 0;
}
GNUmakefile文件(编译用)
# GNUmakefile
include $(GNUSTEP_MAKEFILES)/common.make
APP_NAME = HelloWorld
HelloWorld_HEADERS =
HelloWorld_OBJC_FILES = prog1.m
HelloWorld_RESOURCE_FILES =
include $(GNUSTEP_MAKEFILES)/application.make
.gdbinit(调试用,不是必需的,用于屏蔽调试输出,因为gdb默认读取.gdbinit中的指令)
# .gdbinit
# http://sourceware.org/gdb/onlinedocs/gdb/
set debugevents off
set debugexceptions off
set print thread-events off
run
quit
执行命令:(openapp --debug等效于debugapp)
$ echo hello > .gdbinit
$ gdb -ex "help all" -ex "quit" > gdbhelp.txt
$ make
$ openapp --debug ./HelloWorld.app
$ debugapp ./HelloWorld.app
$ gdb --quiet ./HelloWorld.app/HelloWorld.exe
(TODO)
分享到:
相关推荐
簡單來說, GNUstep 是實作 OpenStep 介面的開放軟體 (Open Source) 計劃, 目標為提供跨平台的物件導向程式開發環境. 早在 1985 年, Steve Jobs 離開蘋果電腦 (Apple) 後成立了 NeXT 公司, 並於 1988 年推出了 NeXT ...
一套windows下编译OC的工具,GNUstep 其实打造类似 KDE 或 GNOME 的整合式环境,只是说它用 的程式语言是 Object C , 而本身也有一套 GUI Toolkits 来开发
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple
GNUstep安装包 支持 Objective-C 语言,,其中只有system和core
gnustep-devel-1.4.0-setup.exe
If you want to compile and develop your own GNUstep applications, also install the gnustep-devel package
GNUStep gnustep-msys-system-0.28.1-setup.exe object-c开发环境,window下搭建object-c开发环境。
GNUstep安装文件,总共四个文件,这是其中一个
GNUstep object-c函数学习手册 帮助你学习oc
GNUStep gnustep-devel-1.3.0-setup.exe object-c开发环境,window下搭建object-c开发环境。
gnustep-cairo-0.22.1-setup.exe 苹果开发必备
windows苹果开发平台,适合没有虚拟化功能的电脑。
the gnustep-msys-system package
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple
gnustep 核心包
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple
可以使用GNUstep在Windows XP上寫Objective-C程式,但是Objective-C已經加了很多新東西,而GNUstep裡的gcc並不提供,所以,这个是GNUstep,再加上新一代的編譯器架構Clang與LLVM(這也是Apple在新版Xcode裡預設使用...
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分
GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分