2011-03-22 97 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 2011-03-22 15:51:49

+1

您試圖#將類接口導入到main()函數的中間。是的,你的代碼中有一行代碼是「'OSXApp * app = ...'」,但這並不意味着「app」被正確聲明*。正如我之前所說的,你不能只做一些東西,希望編譯器能夠理解它 - 你需要學習這門語言。 – 2011-03-22 16:12:13

+0

主要的問題是它寫了「接口」,但我正確定義了類!我嘗試了20種不同的方式來製作它,但我總是得到它!在以前的項目版本中,我只會遇到接口錯誤。在目前的版本中,我得到更多的錯誤(和應用程序錯誤)有什麼不對? – HiTECNOLOGYs 2011-03-22 16:26:19