2009-10-18 3 views
0

Objective-C를 Linux (Ubuntu)에서 배우지 만 Foundation 헤더가 필요한 응용 프로그램을 컴파일하려고하면 파일을 찾을 수 없다는 오류가 발생하지만 GNUstep을 설치했습니다. 개발 패키지 (gnustep-devel). 여기에 콘솔 로그됩니다With Foundation.h

// 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 

: 그리고 여기 내 코드는

내가해야 할 일은
[email protected]:~$ 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’ 
[email protected]:~$ 

?

답변

4
윈도우

를 들어

그누 스텝 설치 과정

  1. 방문 URL : http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/
  2. 는 exe 파일을 다운로드 그누 스텝 시스템-0.19.2-setup.exe를
  3. 그런 다음 그누 스텝 코어-0.19.2 다운로드 -setup.exe

어떤 버전의 gnustep-system을 다운로드하는 경우 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 용 그누 스텝 다음> 모든 프로그램> 그누 스텝이>
  3. 지금 메모장 편집기를 열고 인사로 메모장에 저장
#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 shellname을 처음 시작할 때 foldername은 envoirment를 만들고 C :/GNUstep/home 폴더에있는 컴퓨터 이름의 이름으로 폴더를 만듭니다. 그러므로 공황 상태에 빠지지 마십시오. 좋아요

  1. 셸로 이동하여 다음 명령을 입력하십시오. gcc -o hello hello.m -I/GNUstep/System/Library/Headers -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base -constant-string-class = NSConstantString
  2. 이 명령은 foldername 폴더에 hello.exe 파일을 만듭니다.
  3. 는 다시 쉘에서 마지막으로 당신은 쉘에서 출력을 볼 수있을 것이다

./hello.exe 명령을 입력합니다.

Conguratulation으로 첫 번째 목표 C 프로그램을 성공적으로 작성했습니다. 설명이 필요하다 : [email protected]

+0

/common.make $ (GNUSTEP_MAKEFILES)를 포함'헤더 파일. '# import' 만 사용하면 컴파일 에러가 발생합니다. 예를 들어'#import '를 사용하십시오. – MKroehnert

+0

사용자가 Linux (우분투)에 대한 지침을 요청했습니다. 다음은 Windows 용 지침입니다. –

5

어떻게 컴파일하나요? 나에게 내 응용 프로그램에 대한 GNUMakefile 메이크 파일을 만들고 (here 참조), source /usr/share/GNUstep/Makefiles/GNUstep.sh을 실행 한 다음 make을 실행한다.

+0

고마워, 그게 효과가있다. – sampathpremarathna

+0

GNUmakefile '은 찾지 : 는'# import를 <>'에 당신은 실제로이 TOOL_NAME = LogTest LogTest_OBJC_FILES = source.m 포함 $ (GNUSTEP_MAKEFILES)/tool.make' –

0

저장소에서 검색 한 다음 기초 라이브러리를 설치했습니다. 이제는 모두 작동합니다.

감사합니다.