2

次のようなリンケージ エラーが発生しました。

   +[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
  "_deflate", referenced from:
      +[MTAWXOHelper GZip:Out:] in libWeChatSDK.a(MTAWXOHelper.o)
  "_deflateEnd", referenced from:
      +[MTAWXOHelper GZip:Out:] in libWeChatSDK.a(MTAWXOHelper.o)
  "_deflateInit2_", referenced from:

しかし、私はすでにそれらのライブラリをターゲットに追加しています。しかし現在、これらのライブラリはすべて異なる拡張子 .tbd を持っています。

何か案が?ありがとう。

4

2 に答える 2

10

XCode 7 には、tbd ファイルをリンクする際の既知の問題があります。これは、XCode 7 で tbd ファイルをリンクする方法に関する Apple 開発者フォーラムの回答へのリンクです - https://forums.developer.apple.com/message/8609#8609

[リンクのスニペットは以下にあります]

これは、Xcode 7 ベータ版の既知の問題です。

この問題を回避するには、次の手順を実行してください。

  • リンクされたライブラリ フェーズ、またはコピーされたバンドル リソース フェーズ (場合によっては追加される場所) から、.tbd ファイルへのすべての参照を削除します。
  • リンクするライブラリごとに引数 -l を追加して、手動でリンクするライブラリを「Other Linker Flags」ビルド設定に追加します (たとえば、「-lsqlite3」(引用符なし) を追加します)。

興味のある方のために説明すると、.tbd ファイルは新しい「テキストベースのスタブ ライブラリ」であり、SDK で使用するスタブ ライブラリのよりコンパクトなバージョンを提供し、ダウンロード サイズを大幅に削減するのに役立ちます。

于 2015-06-19T06:41:31.443 に答える
4

zlib を使用する 2 つのプロジェクトがあります。1 つはリンクを検出し、もう 1 つはリンクを検出しません。「リンクされたフレームワークとライブラリ」の「+」を使用して、両方を設定しました。私は最終的に、機能していないものを修正する方法を見つけました:

  1. 以前の試行で追加した zlib へのすべてのリンクを削除します
  2. Finder を開いて に移動し、エイリアスをプロジェクトの Frameworks フォルダーに/usr/libドラッグします。libz.dylib
  3. コンパイル。これは私にとって2015/08/23に機能しました。
于 2015-08-24T01:57:27.770 に答える