Foundation.h出错

时间:2009-10-18 00:02:14

标签: objective-c foundation gnustep

我在Linux(Ubuntu)中学习Objective-C,但是当我尝试编译需要Foundation头文件的应用程序时,我得到一个错误,说该文件无法找到,但我已经安装了GNUstep开发包(gnustep- devel的)。这是我的代码:

// Fraction.h
#import <Foundation/NSObject.h>

@interface Fraction: NSObject {
    int numerator;
    int denominator;
}

- (void) print;
- (void) setNumerator: (int) n;
- (void) setDenominator: (int) d;
- (void) numerator;
- (void) denominator;
@end

这是控制台日志:

ubuntu@eeepc:~$ gcc main.m -o frac -lobjc
In file included from main.m:3:
Fraction.h:2:26: error: objc/NSObject.h: No such file or directory
In file included from main.m:3:
Fraction.h:4: error: cannot find interface declaration for ‘NSObject’, superclass of ‘Fraction’
ubuntu@eeepc:~$

我需要做什么?

3 个答案:

答案 0 :(得分:5)

你怎么编译它?对我来说,我为我的应用程序创建了一个GNUMakefile makefile(参见here),然后我运行source /usr/share/GNUstep/Makefiles/GNUstep.sh然后make

答案 1 :(得分:4)

GNUstep Windows安装流程

  1. 访问网址:http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/
  2. 下载exe文件gnustep-system-0.19.2-setup.exe
  3. 然后下载gnustep-core-0.19.2-setup.exe
  4. 如果你正在下载任何版本的gnustep系统,请记住一件事,你必须为gnustep-core下载相同的版本。 例如,如果您已下载gnustep-setup-0.22.1-setup.exe,则必须下载gustep-core-0.22.1-setup.exe,否则您的代码将无法运行。

    1. 首先安装gnustep-system-0.19.2-setup.exe,然后安装gnustep-core-0.19.2setup.exe。请勿尝试以相反的顺序安装。
    2. 现在你获得了Windows的gnustep然后去开始&gt;所有程序&gt; GNUstep的&GT;外壳
    3. 现在打开记事本编辑器并在记事本中编写以下代码
    4. #import  
      int main (int argc, const char * argv[])
      {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]  
      init];
        NSLog (@"Anil Kumar Yadav has Run the First Objective C  
      program!");
        [pool drain];
        return 0;
      }

      将其保存为C:/ GNUstep / home / foldername中的hello.m. 记住foldername是第一次启动shell时它的名称,它创建了一个文件,并在C:/ GNUstep / home文件夹中按计算机名称的名称创建一个文件夹。所以不要惊慌。好吧

      1. 转到shell并输入以下命令gcc -o hello hello.m -I / GNUstep / System / Library / Headers -L / GNUstep / System / Library / Libraries -lobjc -lgnustep-base -constant-string-类= NSConstantString
      2. 此命令将在foldername文件夹中创建一个hello.exe文件。
      3. 再次在shell中键入命令./hello.exe
      4. 最后,您将能够看到shell中的输出。

        祝贺您成功编写了第一个Objective C程序。 需要任何澄清请写信给我:ayadav00009@gmail.com

答案 2 :(得分:0)

我在存储库中搜索过,然后我安装了基础库,现在一切正常。

感谢。