`

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 OC编译学习工具包

    GNUstep OC 编译学习工具包是一套专为Windows用户设计的编程工具,旨在帮助开发者在Windows环境下编译和学习Objective-C(OC)程序。Objective-C是苹果公司开发的面向对象编程语言,广泛用于iOS和macOS应用开发。...

    GNUstep安装包

    GNUstep 是一个开源项目,旨在实现Apple的OpenStep和后来的Cocoa框架,提供跨平台的应用程序开发环境,尤其侧重于Objective-C编程语言的支持。这个安装包包含了GNUstep的核心组件,包括System和Core两个部分,这表明...

    GNUStep入门教程(中文)

    ### GNUStep基础知识与应用开发详解 #### I. GNUStep简介 - **定义**: GNUStep是一项开源计划,旨在实现OpenStep接口,为用户提供一个跨平台的面向对象编程环境。 - **历史背景**: 该项目始于1995年,由自由软件...

    GNUstep安装文件part1

    5. **学习基础**:熟悉Objective-C的基本语法和GNUstep的API。Objective-C在C的基础上增加了消息传递机制,使得对象间通信更为灵活。Foundation库提供基本的数据类型和常用功能,而AppKit库则包含了窗口、控件和事件...

    GNUstep part1

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

    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.chm object-c API

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

    gnustep几个包

    Gnustep是一个开源的软件开发环境,主要用于实现Objective-C编程语言和GNUStep库,它是对Apple的Cocoa框架的一种克隆。...通过深入学习和实践,开发者将能够熟练掌握如何利用Gnustep构建高效、稳定的跨平台应用程序。

    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 核心包

    这些资源可以帮助新用户学习和熟悉Gnustep的开发环境。 9. **源码可用性**:作为开源项目,Gnustep的所有组件都是以源代码形式提供的,这允许开发者深入研究其工作原理,以及根据需要进行定制和扩展。 10. **版本...

    gnustep-msys-system

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

    gnustep-grom 编译一个窗体文件源码

    在本文中,我们将深入探讨如何使用GNUSTEP-GROM编译一个窗体文件源码,这是一个涉及GNUstep框架和Objective-C...不断学习和实践,你将能掌握更多关于GNUstep框架和Objective-C的知识,从而在跨平台开发领域游刃有余。

    gnustep的appkit库的使用和做了简单标注,没什么用了,因为gnustep好像寄了

    尽管GNUstep可能不再活跃,但对于学习Objective-C编程和理解OS X/iOS应用程序的基本结构,它仍然可以作为一个有价值的参考。 **1.1 实施细节** 在GNUstep的AppKit中,有以下几个关键功能: **1.2.1 拖放(Drag and ...

    gnustep-cairo-core-setup

    Gnustep-Cairo-Core-Setup是一个专为苹果操作系统在Windows环境下开发所设计的工具包。这个工具包的主要目的是为了在不支持虚拟化的计算机上提供一个完整的开发环境,使得开发者能够在Windows系统上进行苹果平台的...

    gnustep-core-0.34.0

    the gnustep-msys-system package

    Simply GNUstep-开源

    **GNUstep:开源世界的OpenStep实现** GNUstep 是一个开源项目,它的目标是实现NeXTSTEP和OpenStep的API,这两个是由NeXT公司(后来被Apple收购并演变为OS X和macOS)开发的编程环境。NeXTSTEP以其优雅的设计、强大...

    GNUstep part2

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

Global site tag (gtag.js) - Google Analytics