2011-08-10 20 views
1

Crypto ++(Code :: Blocks)を使用してC++プログラムを作成しようとしていますが、同じ問題を抱えています。私はこのコードのカットダウン版を使用しています:http://andreyvitdev.blogspot.com/2005/10/crypto-usage-sample.html 、しかし私はそれをコンパイルすることはできません。Crypto ++ Code :: blocks定義されていない参照の問題

#include "cryptopp/blowfish.h" 
#include "cryptopp/osrng.h" 

using namespace CryptoPP; 

int main (int argc, char** argv) { 

    byte key[Blowfish::DEFAULT_KEYLENGTH], 
      iv[Blowfish::BLOCKSIZE]; 

    AutoSeededRandomPool rng (true); 
    rng.GenerateBlock(key, sizeof (key)); 
    rng.GenerateBlock(iv, sizeof (iv)); 

} 

私が始まる、複数のエラーが出る:「C:\ユーザーはUtilisateur \プログラミング\ C++ \コードブロック\ Crytpテスターの\ main.cppには\ | 13 | `CryptoPP :: RandomNumberGeneratorへの未定義参照:: GenerateBlock( unsigned char *、unsigned int) '"

私に何か不足していますか?インポートする必要があるライブラリへのさまざまなサイトには多くの参照がありますが、暗号の++フォルダーにどこにいたのかわかりませんでした。

+0

ライブラリをリンクするのを忘れてしまったようです。 Code :: Blocksにリンクするライブラリを指定し、 'cryptopp'を追加する方法を確認してください。 – pmr

+0

+1、最小限の完全なサンプルプログラムを含める。この重要性の理由の詳細については、http://sscce.org/を参照してください。 –

+0

私はよく見ていきますが、exaxtlyどこにcryptoppライブラリがありますか? – Kalessar

答えて

3

"未定義の参照"は、 Crypto ++ライブラリを使用するか、リンクするようにリンカーに指示しませんでした。

MinGW(コードブロックで最も一般的なコンパイラ)を使用してビルドすると肯定的ではありません。 Microsoftコンパイラ(Visual Studioと共に)は無料です。 Code :: BlocksとCrypto ++の両方で明示的にテストされます。

+0

私はコードブロックでGNU GCCコンパイラを使用していますが、別のものを選択する必要がありますか? – Kalessar

+0

@Kalessar:GCCはWindowsでは動作しません。 MinGW(GCCからWindowsへの(悪い)ポートを含む)かCygwinの内部でGCCを実行しています。 GCCはUNIXプラットフォーム用の優れたコンパイラですが、WindowsではMinGWが実際に悪臭を放ちます。 (例えば、ネイティブのx64バイナリをビルドすることはできません) –

関連する問題