2012-12-19 49 views
1

我在學習Objective-C。我在Windows 7上安裝GNU Step(GCC)來編譯並運行Objective-C。我跑cmd.exe並鍵入使用GCC的Windows 7上的Objective-C

1: gcc -x objective-c <filename.m> -o <obj.o>

然後我型

2: obj.o

Objective-C文件執行。首先請告訴我我是否在賽道上。如果是的話,我怎樣才能讓BAT文件做這兩個步驟?否則告訴我在GCC上編譯和運行Objective-C文件的正確方法。

在此先感謝。

+2

通常情況下,你用'.o'作爲文件擴展名的中間文件,而不是可執行文件。可能會讓人感到困惑,因爲'.o'文件實際上是'.exe'文件 – Petesh

+0

@Petesh在unix sys中'.o'是編譯器生成的可執行文件的擴展名。 –

+0

@whoone是的,你正在做正確的事情。第一步編譯你的文件並將其轉換成'.o'文件。你在下一步中運行。 –

回答

0

GNU步驟外殼就像UNIX外殼讓你.bat文件將不會執行。 因此,創建一個.sh文件

例如

runFile.sh

echo "Argument $1" 
gcc -x objective-c $1 -o MyObj.o 
MyObj.o 

哪裏$1是傳遞給.sh文件user/myDir>sh runFile.sh MyFile.m


編輯參數

這是cm.sh,當我跑,我已經使用GNU步驟

cmd.sh

gcc -o hello hello.m -I /c/GNUstep/GNUstep/System/Library/Headers -L /c/GNUstep/GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString 

這是我所遇到

#import <Foundation/Foundation.h> 

int main() 
{ 
printf("helkjfkaskdhfkjas\n\n"); 

NSObject *obj; 
NSString *str1 = @"Hello"; 
NSString *str = [[NSSstring alloc] initWithString:str1]; 

printf("cnst = %d  var =%d",[str1 retainCount],[str retainCount]); 

return 0; 
} 
+0

那麼文件名在哪裏? 'set「param1 = filename.m」'這樣的事情? – whoone

+0

檢查我的編輯... –

+0

''sh'不被識別爲內部或外部命令, 可操作的程序或批處理文件.'不適用於'windows' – whoone