2017-04-26 20 views
0

が見つかりません私はこのエラーを取得しています:のXcode:アーキテクチャx86_64でのldのシンボルをiOSUndefined:記号(S)アーキテクチャx86_64で

Undefined symbols for architecture x86_64: 
    "_hmac_sha1", referenced from: 
     -[OAHMAC_SHA1SignatureProvider signClearText:withSecret:] in OAHMAC_SHA1SignatureProvider.o 
    "_Base64EncodeData", referenced from: 
     -[OAHMAC_SHA1SignatureProvider signClearText:withSecret:] in OAHMAC_SHA1SignatureProvider.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

これはラインが不満です:

extern void hmac_sha1(const u_int8_t *inText, size_t inTextLength, u_int8_t* inKey, const size_t inKeyLength, u_int8_t *outDigest); 

私は何が間違っているのか、この問題をどうやって修正できるのか分かりません。

私は本当にあなたの助けに感謝します。

答えて

0

ライブラリやフレームワークが不足しているようです。プロジェクトナビゲータでプロジェクトを選択し、[全般]タブに移動し、[リンクされたフレームワークとライブラリ]までスクロールダウンします。プロジェクトにフレームワークまたはライブラリを追加するには、+シンボルをクリックします。

hmac_sha1はCommon Cryptoライブラリの一部ですので、起動するのに適しています。

+0

「この部分は」という文言から「_hmac_sha1」という文が出てきます。extern void hmac_sha1(const u_int8_t * inText、size_t inTextLength、u_int8_t * inKey、const size_t inKeyLength、u_int8_t * outDigest); " – user2924482

0

私の個人的な経験から、これらのクランエラーは少し一般的です。ほとんどの場合、名前の衝突が発生すると、これらが表示されます。最近、フレームワークを新しいバージョンに更新し、クラス名の衝突とextern NSString * constの両方を取得してしまいました。あなたが上に述べたことから、あなたの問題になる可能性があります。あなたのコードベースで "hmac_sha1"の検索を行い、何が表示されるかを見てみましょう。名前を変えてもう一度実行することさえできます。