私はそれを働かせました。もちろん、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 および友人からのコードのコンパイル済みバージョンを持っている必要があります。これを行う 1 つの方法は、ライブラリに付属の「Mac」プロジェクトをコンパイルすることです。これにより、Xcode が好んで作成する、深く埋もれた「DerivedData」ディレクトリの 1 つに .o ファイルが生成されます。それが私のために作ったものは次のとおりです:
~/Library/Developer/Xcode/DerivedData/Mac-flsjygxmngizhzfwnfgcakejmwkx/Build/Intermediates/Mac.build/Debug/Mac.build/Objects-normal/x86_64
(「Mac-flsjygxmngizhzfwnfgcakejmwkx」のビットは、あなたにとっては異なると思います。) そのディレクトリには、多数の .o ファイルと 'Mac.LinkFileList' ファイルがあります。このファイルは、gcc の -filelist パラメーターに指定するファイルです。リンク手順で重複シンボル エラーが発生しないように、main.o、AppDelegate.o、および ASIWebPageRequest.o ファイルへの参照を削除する必要があります。
ASIHTTPRequest にはこれらの依存関係があるため、ASIHTTPRequest ヘッダーと .o ファイルに加えて、gcc は SystemConfiguration、CoreServices フレームワーク、および zlib ライブラリとリンクすることを期待します。
このライブラリで多くのテストを行っている場合は、「Objective-C」言語定義 ([設定] の下) を「Objective-C with ASIHTTPRequest」などとして複製することをお勧めします。次に、実行するすべての Objective-C コードに対して実行することなく、ASIHTTPRequest に対して実行するためのコンパイル フラグをカスタマイズできます。
Xcode がそのビルド ツリーなどをクリーンアップする場合に備えて、.o ファイルと "LinkFileList" ファイルをより永続的な場所にコピーすることもできます。