`

GNUstep学习笔记

 
阅读更多

一、安装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入门教程(中文)

    簡單來說, GNUstep 是實作 OpenStep 介面的開放軟體 (Open Source) 計劃, 目標為提供跨平台的物件導向程式開發環境. 早在 1985 年, Steve Jobs 離開蘋果電腦 (Apple) 後成立了 NeXT 公司, 並於 1988 年推出了 NeXT ...

    GNUstep OC编译学习工具包

    一套windows下编译OC的工具,GNUstep 其实打造类似 KDE 或 GNOME 的整合式环境,只是说它用 的程式语言是 Object C , 而本身也有一套 GUI Toolkits 来开发

    GNUstep part1

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple

    GNUstep安装包

    GNUstep安装包 支持 Objective-C 语言,,其中只有system和core

    gnustep-devel-1.4.0-setup.exe

    gnustep-devel-1.4.0-setup.exe

    gnustep-cairo-0.34.0

    If you want to compile and develop your own GNUstep applications, also install the gnustep-devel package

    gnustep-msys-system-0.28.1-setup

    GNUStep gnustep-msys-system-0.28.1-setup.exe object-c开发环境,window下搭建object-c开发环境。

    GNUstep安装文件part1

    GNUstep安装文件,总共四个文件,这是其中一个

    GNUstep.chm object-c API

    GNUstep object-c函数学习手册 帮助你学习oc

    gnustep-devel-1.3.0-setup.exe

    GNUStep gnustep-devel-1.3.0-setup.exe object-c开发环境,window下搭建object-c开发环境。

    gnustep-cairo-0.22.1-setup.exe

    gnustep-cairo-0.22.1-setup.exe 苹果开发必备

    gnustep-msys-system

    windows苹果开发平台,适合没有虚拟化功能的电脑。

    gnustep-core-0.34.0

    the gnustep-msys-system package

    GNUstep part2

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple

    gnustep 核心包

    gnustep 核心包

    GNUstep part6

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple

    Clang GNUstep Objective C for Windows

    可以使用GNUstep在Windows XP上寫Objective-C程式,但是Objective-C已經加了很多新東西,而GNUstep裡的gcc並不提供,所以,这个是GNUstep,再加上新一代的編譯器架構Clang與LLVM(這也是Apple在新版Xcode裡預設使用...

    GNUstep part4

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分

    GNUstep part3

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分

    GNUstep part5

    GNUstep Objective C iPhone Apple GNUstep Objective C iPhone Apple 共六部分

Global site tag (gtag.js) - Google Analytics