zoukankan      html  css  js  c++  java
  • 安装GNUstep并运行第一个objc程序

      在windows环境下安装GNUstep,运行objective-c程序,今天试了一下,记录一下操作步骤,
     
    1,登陆http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/网站下载GNUstep的三件套。很多文章都是写的下载两个程序,其实现在GCC在第三个文件里了。仅仅前两个是不行的。
    2,然后按照下面的顺序安装这四个文件到同一个目录(例如:C:GNUstep):
          (1.)gnustep-msys-system-xxx.exe
          (2.)gnustep-core-xxx.exe
          (3.)gnustep-devel-xxx.exe
          (4.)gnustep-cairo-xxx.exe

    3,给个例子吧:例如在F盘目录下用文本编辑一个文件Fraction.m,代码如下(最简单的Obj-C程序):

     

    #import <Foundation/Foundation.h>

    int main(int argc, char *argv[])  {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    NSLog(@"Hello world!");

    [pool drain]; 

    return 0; 

    } 

     

    首先在Shell输入 cd f: 切换到F盘目录,然后

    在Shell中输入命令:gcc -fconstant-string-class=NSConstantString -c Fraction.m -I /GNUstep/System/Library/Headers

    这是目录里就会生成一个Fraction.o文件。(成功完成此步骤不会有任何显示在命令行中,若有显示说明有错误)

    接下来输入命令gcc -o Fraction Fraction.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base

    此时成功的话就会在目录里生成一个Fraction.exe文件。

    最后使用命令 ./Fraction.exe会看到输出的结果,我的结果是:2014-12-20 15:30:33.078 Fraction[15344] Hello world!

    成功!

    4,问题解决

    (1),unrecognized option '-class=NSConstantString' 错误,原因是多了空格。

    (2),执行./Fraction.exe的时候,报错,reason:bad sequence length in constant string,是因为Fraction.m文件的保存格式应该为utf-8.

    重要命令:

    go to the path: cd f: cd iOS/codeOfObjc

    create xxxx.o file: gcc -fconstant-string-class=NSConstantString -c hello.m -I/GNUstep/System/Library/Headers

    create xxxx.exe file: gcc -o hello hello.o -L/GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base run the xxxx.exe file: ./helle.exe

  • 相关阅读:
    git 无法提交到远程服务器【转载】
    vscode 常用快捷键
    mongodb nodejs一个有自增id的功能
    C++ lambda表达式与函数对象
    TypeScript的async, await, promise,多参数的调用比较(第2篇)
    了解TypeScript的async,await,promise(第1篇)
    TyepScript判断一个变量是null, or undefined
    MongoClient 对 Mongodb的 增删改查 操作
    TypeScript第一个Promise程序
    C++基类的继承和多态
  • 原文地址:https://www.cnblogs.com/vonk/p/4175339.html
Copyright © 2011-2022 走看看