導航:首頁 > 源碼編譯 > ocimport編譯

ocimport編譯

發布時間:2022-03-31 05:01:42

① windows怎麼配置oc開發環境

安裝

上網搜了搜,這方面的資料真是不少,必備的東東是 GNUstep Developer Tools,可以參考這個鏈接 Windows Installer,安裝很簡單,按照順序 GNUstep System、GNUstep Core、GNUstep Developer 安裝即可,過程就不表述了。

安裝完成後,我們可以用「程序 -> GNUstep -> Shell」 來啟動一個模擬 UNIX 控制台,在這下面可以完成開發、編譯、執行等工作。

開發

首先我們來寫一個 HelloWorld,簡單起見,我們在 C 盤根目錄下創建 HelloWorld.m 文件,並保存,代碼如下:#import <Foundation/Foundation.h>

int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];

return 0;
}


註:關於用什麼工具來編寫代碼,由於我也是初次使用,並沒有特別好的工具推薦,我自己使的是 UltraEdit。

編譯

由於 HelloWorld.m 是在 C 盤根目錄下,所以首先我們將路徑切換到 C 盤根目錄:$cd C:\
註:cd 這種方式同樣適用於切換到任意驅動器或任意子目錄下,路徑的組織結構與 windows 沒有區別,不區分大小寫。編譯成目標碼gcc -fconstant-string-class=NSConstantString -c HelloWorld.m -I /GNUstep/System/Library/Headers
執行上面的命令後,控制台不會有任何輸出,這是正確的,否則你需要去檢查原因了。同時在 C 盤根目錄下會生成一個 HelloWorld.o 的目標文件,在下一步,我們將用它來編譯成可執行文件。
編譯成可執行文件gcc -o HelloWorld HelloWorld.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
C 盤根目錄下會生成 HelloWorld.exe


執行

我們可以直接在 Windows 控制台下執行 HelloWorld.exe,也可以在 Shell 窗口中執行:

在 Shell 窗口輸入:./HelloWorld.exe
輸出如下:

2011-09-23 13:22:42.828 helloworld[5484] Hello World!
關於工作路徑

我們做開發時,項目不可能放在 C 盤根目錄下,一般都是有組織的,那麼如何編譯這類的文件呢?其實方法很簡單,使用 cd 命令,進入到 .m 所在的目錄下,然後執行編譯。

Make

上面的編譯過程很繁瑣,稍有不慎就可能輸入錯誤,造成編譯失敗,其實還有一個更簡單的方法,就是建立一個 make 文件,對於 GNUstep 來說,make 文件名必須是「GNUmakefile」,內容如下:include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME=HelloWorld<strong>
</strong>HelloWorld_OBJC_FILES=HelloWorld.m

include $(GNUSTEP_MAKEFILES)/tool.make

HelloWorld 關鍵字部分為可替換為實際內容。GNUmakefile 文件要求與 .m 文件在同一目錄下。

make 的執行很簡單,進入 「GNUmakefile」 所在的目錄,在 Shell 窗口中執行 「make」 即可。這會在 「GNUmakefile」 所在目錄下生成一個 obj 目錄,obj 下包含了可執行文件和目標文件等。

後記簡簡單單,基本上沒什麼波折,就是工作路徑的問題煩了我一下,因為有人說在 GNUstep 安裝目錄下會有一個 「C:\GNUstep\home\username」 目錄,可我安裝後並沒有類似的東東,也許是版本不一致或是別的什麼原因吧,這已經不是問題了。

註:上面的問題是這樣的,後來我發現這個 HOME 還是有的,啟動 shell 後,輸入 pwd 命令,得到當前工作路徑為 /home/username,實際位置位於 「D:\GNUstep\msys\1.0\home\username」。

② Xcode編譯後怎樣自動在終端運行,在學習寫OC的控制台程序,因為在Xcode編譯後默認打開Xco

③ 新手求問 mac下 終端如何編譯OC

建議用xcode開發軟體

④ OC學習篇之@class關鍵字的作用以及#include和#import的區別

#import比起#include的好處就是不會引起交叉編譯
在 Objective-C中,#import 被當成 #include 指令的改良版本來使用。除此之外,#import
確定一個文件只能被導入一次,這使你在遞歸包含中不會出現問題
@class一般用於頭文件中需要聲明該類的某個實例變數的時候用到,在m文件中還是需要使用#import
@class就是告訴編譯器有這么一個類,至於類的定義是啥不知道
@class一般用於頭文件中需要聲明該類的某個實例變數的時候用到,在m文件中還是需要使用#import
「」的意思是自己創建的文件,用這個首先會在當前的目錄中尋找,如果找不到就到其他的位置尋找,「」和<是相對的一個是自己創建的文件一個是系統的文件

⑤ OC 中 #import在.h 和 .m中的作用分別是什麼

.h是向「外界」提供介面,.m是用來實現.h中聲明的方法和一些私有的方法。.m是參與編譯的,對於其他文件來說,你給給我一個.h告訴我你有什麼方法可以用就可以了,我不管你是如何實現的,所以不用引入.m,而且引入.m會報錯

⑥ swift中的的oc代碼無法編譯怎麼辦

方法一:在swift項目中,新建一個oc的類,這時候,會彈出一個對話框,你點默認的那個選項就行了。然後在新生成的橋文件中導入你所需要的oc代碼的頭文件就行了。

方法二:但是有時候,新建一個oc的類,xcode並沒有提示讓創建橋文件,這時候就需要自己手動創建了。new一個header文件,命名為當前的項目名稱就行,然後刪除這個橋文件里默認生成的這些東西,並且在oc bridging header中設置路徑就行了。

⑦ 為什麼oc的編譯速度比java快很多呢

因為oc是用了llvm和gcc還有一系列工具鏈;Java要解決各種依賴包,資源管理,id連接,進行dex轉換。
其實oc的第一次編譯也不是很快,只是如果第一次編譯之後,以後迭代開發,改幾個文件的話,那麼再次編譯很快。原因是:oc是消息型語言。

⑧ ios oc和swift混編怎樣調用swift方法

引用頭文件 #import "項目名字-Swift.h" 將項目名字 替換成你項目的名字,Swift 就可以再oc中使用了,語法還是oc語法!

⑨ 有誰在windows下用OC的編譯器成功的么

安裝GNUstep,提供了Windows平台下的Object-C的模擬開發環境,一共有四個軟體包,其中GNUstep System和GNUstep Core是必裝的,GNUstep Devel和Cairo Backend是選裝的。只安裝前兩個就夠了。

⑩ ios oc工程引入swift header沒有

在項目中右鍵添加一個swift文件,我添加的LearnSwift.swift

添加後Xcode彈出『是否配置oc橋接頭文件』的提示,點確認,系統自動生成一個項目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。

配置oc橋接頭文件的提示

LearnSwift-Bridging-Header.h實質上是一個供swift使用的頭文件,在這里把所有要暴露給swift的oc頭文件都添加進去,這樣寫swift的時候就可以直接使用那些oc的類和方法了。
因為swift本身沒有頭文件,只有.swift;而oc有.h和.m文件。有了這個聲明,.swift就可以直接使用oc的.h了

我的LearnSwift-Bridging-Header.h文件內容

接下來就可以直接在LearnSwift.swift中寫swift代碼啦 ~ 隨便聲明一個類,打些log:

我的LearnSwift.swift文件內容

編譯直接通過,這就是在swift中使用oc類和方法了,一切順利!

在oc中使用swift,我在AppDelegate.m中使用剛才創建的swift類,那麼先要引用swift頭文件,即#import "LearnSwift-Swift.h",然後在這個.m文件中就可以任意使用swift創建的類和方法了:
LearnSwift *learnSwift = [[LearnSwift alloc] init];
[learnSwift logsth:@"code from oc"];
編譯運行直接過! 輸出:
this is a log from swift : code from oc

理解下#import "LearnSwift-Swift.h"
其實是項目名-Swift.h,這也是Xcode自動生成的,根據你寫的所有swift代碼,生成一個oc的.h文件,進行類和方法的聲明,這樣在oc里引用這個頭文件後,就相當於引用了所有swift聲明,可以直接使用了。

閱讀全文

與ocimport編譯相關的資料

熱點內容
游戲不同的伺服器有什麼區別 瀏覽:68
jar線上編譯 瀏覽:115
程序員論壇代碼被懟 瀏覽:996
win7文件夾選項注冊表 瀏覽:786
中央編譯局常艷博士照片 瀏覽:304
濡沫江湖安卓怎麼下載 瀏覽:954
陝西省電信dns伺服器雲伺服器 瀏覽:826
美輯編譯多長時間潤色好 瀏覽:466
伺服器心跳地址是什麼 瀏覽:981
編譯原理與區別 瀏覽:978
安利微購app怎麼樣 瀏覽:931
ios程序員適合什麼鍵盤 瀏覽:722
如何把加密pdf轉換成excel 瀏覽:623
文件夾7z如何壓縮成rar 瀏覽:870
android藍牙低功耗 瀏覽:277
如何下載好大夫app 瀏覽:968
linux查看txt 瀏覽:157
linux硬碟格式化命令 瀏覽:522
神舞幻想存檔放哪個文件夾 瀏覽:653
怎樣把pdf轉為圖片 瀏覽:339