Swiftプロジェクトにサードパーティの静的ライブラリを含めようとしています。他にも数ある中で、これら2つのファイルがあります。
GoogleConversionTrackingSDK/ACTReporter.h GoogleConversionTrackingSDK/libGoogleConversionTracking.a
ターゲットの「リンクされたフレームワークとライブラリ」セクションに.a
ファイルを追加しました。次に、プロジェクトにmodule.map
ファイルを次のように作成しました。
module GoogleConversionTracking {
header "../../Libs/GoogleConversionTrackingSDK/ACTReporter.h"
export *
}
そしてSwiftファイルで私は今それを参照することができます:
import GoogleConversionTracking
しかし、リンク時にエラーが発生します。
ld:-lGoogleConversionTrackingのライブラリが見つかりません
clang:エラー:リンカーコマンドが終了コード1で失敗しました(-vを使用して呼び出しを確認してください)
注:-lGoogleConversionTrackingのライブラリが見つかりません
これをどのように修正しますか?ブリッジヘッダーを使用せずに、可能であれば、これらのモジュール定義ファイルを使用します。
モジュールマップは私のトラブルの代名詞です!ブリッジヘッダーは機能しませんが、ほとんどの場合に機能します。とにかく、次のことを確認してください。
Swift_INCLUDE_PATHS
– Swiftコンパイラが追加のSwiftモジュールを検索するパスのリスト。これにより、Xcodeにモジュールマップの場所が通知されます。LIBRARY_SEARCH_PATHS
–これは、製品が使用するライブラリーのリンカーが検索するフォルダーへのパスのリストです。 Xcodeは、モジュールのバイナリがどこにあるかを知る必要があります。また、ヘッダーだけでなく、アンブレラヘッダーを使用することもできます。詳細は documentation を参照してください。また、modulemap
拡張子を使用することをお勧めします。module.map
が違いをもたらすかどうかはわかりませんが、ほとんどのプロジェクトでそれを確認して使用したことを覚えています。
Omar Abdelhafithはこの問題について邪悪な ブログ投稿 を持っています。また、そのようなことを扱うときに 他の人がそれを行う方法 を確認するのにも役立ちます。