2011-03-22 7 views
0

저는 크로스 플랫폼 게임을 만들고 프로젝트 (http://cl.ly/5QRn)를 만들려고합니다. 나는 그것을 만들려고 노력하고 있지만 얻을 :Makefile로 Objc 프로젝트 컴파일하기

Mark-Fedurins-iMac:Evolve hitecnologys$ make 
gcc -g -c -o OSX/AppDelegate.o OSX/AppDelegate.m 
gcc -g -c -o OSX/osx.o OSX/osx.m 
gcc -g -c -o main.o main.m 
In file included from OSX/osx.m:2, 
       from main.m:6: 
OSX/AppDelegate.m: In function ‘main’: 
OSX/AppDelegate.m:4: error: expected expression before ‘interface’ 
In file included from main.m:6: 
OSX/osx.m:10: error: expected expression before ‘end’ 
main.m:8: error: ‘app’ undeclared (first use in this function) 
main.m:8: error: (Each undeclared identifier is reported only once 
main.m:8: error: for each function it appears in.) 
make: *** [main.o] Error 1 

내가 뭘 잘못 했습니까? 어리석은 바보에게 그가해야 할 일에 답 해주세요 :) Thx!

답변

0

우선 - # import'ing .m 파일은 무엇입니까? #import는 헤더 (.h) 파일 용입니다. 둘째, 이것은 구문 오류 일 뿐이며, makefile을 사용하고 있다는 사실과 아무 관계가 없으므로 제목이 잘못 선택됩니다. 그것은 "인터페이스"가 아니라 "@interface"라는 철자가 있습니다. 마찬가지로 main.m에서 선언하지 않은 "app"라는 변수를 사용하고 있습니다.

일반적으로 언어 자습서를 읽어야 할 필요가있는 것처럼 들리지만 컴파일러가 이해할 수는 없습니다.

http://developer.apple.com/library/mac/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/_index.html

+0

1)이 강사를 읽었습니다. 2) OSXApp * app = [[OSXApp alloc] init]; [app run]; 선언했습니다. 3) 모든 파일을 검사했지만 구문 오류가 없습니다. 4) "# import는 헤더 (.h) 파일 용입니다". 나는 이것을 모른다! Thx, .h 파일을 사용했지만 동일한 결과를 얻었습니다. 5) 내 메이크 파일 또는 가져 오기에 문제가 있다고 생각합니다. – HiTECNOLOGYs

+1

main() 함수의 중간에 클래스 인터페이스를 # 임포트하려고합니다. 예, 코드에서 "'OSXApp * app = ...'"라고 읽는 라인이 있습니다. 그러나 "app"이 * 올바르게 선언 * 된 것은 아닙니다. 앞에서 말했듯이, 컴파일러가 이해할 것으로 기대할 수는 없습니다. 언어를 배워야합니다. –

+0

주요한 문제는 "인터페이스"를 쓰는 것이지만 올바르게 클래스를 정의했습니다! 나는 그것을 만들기 위해 약 20 가지 방법을 시도했지만 항상 그것을 얻는다! 이전 프로젝트 버전에서는 인터페이스에 대해서만 오류가 발생했습니다. 현재 버전에서는 오류 (및 앱 오류)가 더 많이 발생합니다. 무엇이 잘못 되었나요? – HiTECNOLOGYs