2

文字列をハッシュするためにopensslライブラリのSHA1関数を使用したいのですが、ライブラリをダウンロードして にインストールしました。コードは次のとおりです。/usr/include

#include <openssl/sha.h>
#include <string.h>
#include <stdio.h>

int main() {

    unsigned char digest[SHA_DIGEST_LENGTH];
    char string[] = "hello world";

    SHA1((unsigned char*) &string, strlen(string), (unsigned char*) &digest);
}

構文エラーはなく、openssl/sha.h を認識しますが、Eclipse でプロジェクトをビルドしたり、ターミナルからビルドしたりすると、次のエラーが発生します。

Hash.cpp:(.text+0x4a): undefined reference to `SHA1'
collect2: error: ld returned 1 exit status

どんな助けでも大歓迎です!:)

4

1 に答える 1

5

を適切にリンクしていませんopenssl。Linux を使用している場合は、リンクする必要がありますcrypto

端末から:

g++ -o hash hash.cpp -lcrypto

Eclipse から、 を開きproject->Properties、フォルダーに移動しC/C++ Build->Settingsて追加する必要cryptoがありLinker->Librariesます。

于 2013-05-16T08:16:44.177 に答える