我得到它的工作。當然,gcc需要一些額外的參數來鏈接到ASIHTTP模塊。這是我結束了:
-std=c99 -framework SystemConfiguration -framework CoreServices -framework Foundation -lz -I/path/to/asi-header-files -filelist /path/to/list-of-asi-compiled-modules
我想,你的代碼只是包括路徑的ASIHTTPRequest.h等頭文件...如果你使用有明確的路徑,你不需要-I在上面切換。 gcc確實需要有一個來自ASIHTTPRequest.m的編譯版本的代碼和朋友來鏈接它。一種方法是編譯庫中附帶的「Mac」項目。這將在Xcode喜歡製作的深埋「DerivedData」目錄之一中生成.o文件。它爲我做的一個是:
~/Library/Developer/Xcode/DerivedData/Mac-flsjygxmngizhzfwnfgcakejmwkx/Build/Intermediates/Mac.build/Debug/Mac.build/Objects-normal/x86_64
(「陸委會-flsjygxmngizhzfwnfgcakejmwkx」位會爲你不同,我想。)在該目錄中,也有.o文件一堆和「Mac.LinkFileList '文件。這個文件是您爲gcc提供-filelist參數的文件。您需要刪除對main.o,AppDelegate.o和ASIWebPageRequest.o文件的引用,以免在鏈接步驟中出現重複的符號錯誤。
除了ASIHTTPRequest頭和.o文件,gcc將期望與SystemConfiguration,CoreServices框架和zlib庫鏈接,因爲ASIHTTPRequest具有這些依賴關係。
如果你正在用這個庫做很多測試,我會建議在Objective-C中用Objective-C和ASIHTTPRequest來複制「Objective-C」語言定義(在Preferences下)。然後,您可以自定義針對ASIHTTPRequest運行的編譯標誌,而不必爲所運行的所有Objective-C代碼執行該標誌。
您可能還想將.o文件和「LinkFileList」文件複製到更加固定的位置,以防萬一Xcode清理掉構建樹或其他東西。
+1鏈接到CodeRunner,很酷的應用程序。 – 2012-01-24 02:39:01