我得到它的工作。当然,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