`
deaboway
  • 浏览: 57385 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Windows下安装Object C开发环境,及Hello Word

 
阅读更多

最近想学习iphone开发,但是由于没有c基础,只有java基础。所以先从基础学习,首先是搭建环境,目前手头没有mac机子,只能先在windows下学习基本语法。还好找到了GNUset,可以利用GNUstep在windows下模拟object c开发环境。

官方网址:http://www.gnustep.org/

安装:

GNUstep Windows Installer提供了Windows平台下的Objective-C的模拟开发环境,一共有四个软件包,其中GNUstep SystemGNUstep Core 是必装的,GNUstep DevelCairo Backend 是选装的。甭管必装选装,一次性全安上,免得以后麻烦。

编写HelloWord

几乎所有的开发环境都是以HelloWord开始,在这里我们先编写HelloWord.

安装完成后,在开始菜单里的GNUstep选项里执行shell,就能打开命令行,在这里就可以使用vi编写Object-C程序了,不过操作起来总有些繁琐,其实也可以直接在Windows里进入C:/GNUstep/home/username目录,在这里用你喜欢的工具编写Object-C程序,然后再进入shell里编译。
直接给出helloworld.m文件内容,取自Programming in Objective-C 2.0一书:

#import <Foundation/Foundation.h>
int main (int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];
return 0;
}



第一次编译:

gcc -o helloworld helloworld.m

结果出现错误信息,找不到头文件:

helloworld.m:1:34: Foundation/Foundation.h: No such file or directory
helloworld.m: In function `main’:
helloworld.m:4: error: `NSAutoreleasePool’ undeclared (first use in this function)
helloworld.m:4: error: (Each undeclared identifier is reported only once
helloworld.m:4: error: for each function it appears in.)
helloworld.m:4: error: `pool’ undeclared (first use in this function)
helloworld.m:5: error: cannot find interface declaration for `NXConstantString’



第二次编译:

gcc -o helloworld helloworld.m /
-I /GNUstep/System/Library/Headers/

结果出现错误信息,找不到接口声明:



helloworld.m: In function `main’:
helloworld.m:5: error: cannot find interface declaration for `NXConstantString’

第三次编译:

gcc -o helloworld helloworld.m /
-fconstant-string-class=NSConstantString /
-I /GNUstep/System/Library/Headers/

结果出现错误信息,找不到链接库:



helloworld.m:(.text+0×33): undefined reference to `_objc_get_class’
helloworld.m:(.text+0×45): undefined reference to `_objc_msg_lookup’
helloworld.m:(.text+0×64): undefined reference to `_objc_msg_lookup’
helloworld.m:(.text+0×80): undefined reference to `_NSLog’
helloworld.m:(.text+0×93): undefined reference to `_objc_msg_lookup’
helloworld.m:(.text+0xbc): undefined reference to `___objc_exec_class’
helloworld.m:(.data+0×74): undefined reference to `___objc_class_name_NSAutoreleasePool’
helloworld.m:(.data+0×78): undefined reference to `___objc_class_name_NSConstantString’
collect2: ld returned 1 exit status



第四次编译:

gcc -o helloworld helloworld.m /
-fconstant-string-class=NSConstantString /
-I /GNUstep/System/Library/Headers/ /
-L /GNUstep/System/Library/Libraries/ /
-lobjc /
-lgnustep-base

注意:helloworld.m必须出现在-lobjc和-lgnustep-base的前面,否则会出错。
此时会出现一些info提示信息,不过不碍事,终于成功了生成了可执行文件,执行看结果。



./helloworld.exe

结果是:



注意,可以利用粘贴复制命令:Ctrl+p

分享到:
评论

相关推荐

    驱动程序开发—Hello Word

    这是因为在C++环境下,为了避免函数名被C++编译器进行名称修饰(Name Mangling),使得链接时找不到对应的函数,需要明确指出这个函数是按照C语言的规则链接的。如果文件是以C语言编写,则可以省略extern "C"。 ...

    普通的IDEA maven java项目demo(hello word)-1.8

    这个项目可能是为了教授Java编程语言的基础知识,以及如何在现代集成开发环境(IDE)如IntelliJ IDEA中配置和管理Maven项目。标签“java”、“maven”和“项目文件包”进一步确认了项目的性质,表明它包含了与Java编程...

    struts2 Hello word 完整实例

    5. **运行环境**:为了运行这个实例,你需要一个Java开发环境,如JDK,并且需要在服务器上部署,例如Apache Tomcat。只需将解压后的目录复制到Tomcat的`webapps`目录下,然后启动服务器,就可以通过浏览器访问并测试...

    dotNET下开发操作WORD时使用的WORD控件

    本文将深入探讨在dotNET环境下利用Word控件进行开发的相关知识点。 首先,.NET Framework提供了Microsoft.Office.Interop.Word命名空间,这是一个用于与Word应用程序进行COM互操作的接口。通过这个命名空间,我们...

    QT4 HELLO源生代码初学者

    Visual Studio 2008是一个集成开发环境(IDE),而Qt4.8是QT库的一个版本,两者结合可以方便地进行Qt应用程序的开发,特别是对于习惯使用Visual Studio的开发者来说。 "MOC"全称为Meta-Object Compiler,是Qt框架中...

    9101307-C#实现word文档打印及预览.rar_C# 预览 word_C#打印word文档_c# word_hello1

    在C#编程环境中,处理Microsoft Word文档是一项常见的任务,其中包括对文档进行打印和预览功能的实现。本压缩包中的资源提供了实现这一功能的具体代码示例,帮助开发者快速理解和应用。下面将详细介绍C#中如何处理...

    Windows.Office.Interop.Word

    总结起来,Windows.Office.Interop.Word是.NET开发者与Word进行交互的重要工具,它简化了操作Word文档的编程工作,但同时也需要关注其在服务器环境下的性能问题。对于需要处理大量Word文档的业务场景,开发者应当...

    vc开发word一个开发WRORD的程序例子

    1. **Visual C++环境**:首先,你需要安装Visual Studio,其中包含了VC++编译器和IDE(集成开发环境),用于编写和调试C++代码。 2. **ATL(Active Template Library)**:这是Microsoft提供的一种C++库,用于简化...

    pb oleobject word使用

    标题与描述均提到了“pb oleobject word使用”,这指的是在PowerBuilder(PB)开发环境中,利用OLE(Object Linking and Embedding)技术操作Microsoft Word应用程序。以下将深入解析这一主题,涵盖其背景、实现原理...

    PowerBuilder入门级程序Hello World

    **PowerBuilder基础与Hello World程序详解** PowerBuilder是一款强大的、基于事件驱动的4GL(Fourth-Generation Programming Language)编程工具,特别适合于企业级数据库应用系统的开发。它以其直观的图形化界面、...

    Winform窗体嵌入Office,打开Excel和Word

    在本文中,我们将深入探讨如何在Winform窗体中嵌入Office组件,特别是Excel和Word,以便在C#开发环境中创建交互式应用。利用系统API而不是传统的WebBrowser控件,可以实现更快的打开速度和更少的依赖项,这对于提高...

    delphi窗体嵌入word

    在Delphi编程环境中,开发人员有时需要将应用程序的窗体(Form)与Microsoft Word文档集成,以便实现诸如编辑、查看或者交互式操作Word文档的功能。本文将深入探讨如何在Delphi XE2版本中实现窗体嵌入Word的详细步骤...

    面向对象C++示例 hello world!

    ”揭示了C++编程中的核心概念——面向对象编程(Object-Oriented Programming, OOP),并结合了基础的用户界面交互,通过一个简单的“hello world”程序来展示。在C++中,面向对象编程包括类的定义、对象的创建以及...

    PB调用excel和word

    PB是PowerBuilder的缩写,一个老牌的面向对象的编程工具,主要用于开发企业级的应用程序。在本场景中,"PB调用excel和word"指的是使用Power...记得在实际操作时,根据具体的Office版本和安装环境调整代码,确保兼容性。

    delphi ole word.rar

    在IT行业中,Delphi是一种基于Object Pascal编程语言的集成开发环境(IDE),它以其高效、高性能的Windows应用程序开发而闻名。OLE(Object Linking and Embedding)是Microsoft开发的一种技术,允许不同应用程序...

    VC++操作 word2007

    描述中提到,开发环境为VC++ 6.0,在Windows 7操作系统上,同时使用了录制的宏作为辅助工具。标签“mfc c++ office word”进一步明确了我们讨论的领域。 在C++中操作Word,主要依赖于Microsoft的COM(Component ...

    c# word编辑器

    在C#编程环境中,开发一个Word编辑器是一个复杂的任务,涉及到对Microsoft Office Interop库的深入理解和WinForms技术的应用。让我们详细探讨这个话题。 首先,`C# Word编辑器`通常指的是使用C#语言和.NET ...

    Microsoft.Office.Interop.Word.dll

    在多线程环境下使用时,需要特别注意对Word对象的正确管理和同步,以避免可能的数据冲突或资源泄露。 总的来说,`Microsoft.Office.Interop.Word.dll`是C#开发者处理Word文档的一个强大工具,它简化了与Word对象的...

    玩转WTL word文件

    WTL的核心优势在于其简洁的API和对性能的关注,使得开发人员能够在不引入MFC(Microsoft Foundation Classes)的复杂性的情况下,高效地开发Windows应用程序。 ### WTL的基本组件 1. **窗口类(Window Classes)**...

    C#处理word文件代码实例非常实用

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本主题聚焦于如何使用C#处理Microsoft Word文件,这对于任何需要与Word文档交互的开发者来说都是非常实用的知识点。以下...

Global site tag (gtag.js) - Google Analytics