私は Qt を使用しており、Botan を使用しようとしています。すべてが順調に進んでいるように見えましたが、私が行ったとき:
Botan::BigInt myInt;
私のコンストラクタでは問題なく動作しますが、一方、私が行った場合:
Botan::AutoSeeded_RNG rng;
未定義のエラーがスローされます。
C:\Users\Stevie\Desktop\asfsdf-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\debug\mainwindow.o:-1: In function `AutoSeeded_RNG':
C:\Users\Stevie\Desktop\asfsdf-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\..\..\..\..\botan\include\botan\auto_rng.h:40: error: undefined reference to `_imp___ZN5Botan23Global_State_Management12global_stateEv'
C:\Users\Stevie\Desktop\asfsdf-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\..\..\..\..\botan\include\botan\auto_rng.h:40: error: undefined reference to `_imp___ZN5Botan13Library_State10global_rngEv'
:-1: error: collect2: ld returned 1 exit status
AutoSeeded_RNGではなくBigIntで機能する理由はわかりませんが、正確な手順は次のとおりです。
「src/libs/3rdparty/botan/」にある Qt Creator ソースに含まれる Botan ソースをコンパイルしました。
Web サイトから Windows インストーラー (1.10) を使用して Botan をインストールしました。
libBotan.a、libBotand.a、botan.dll、および Botand.dll を取り、Botan をインストールした場所 (C:\botan) に配置しました。既に存在するこれらのファイルを上書きしました。
次に、新しい Qt プロジェクトを作成し、.pro ファイル内に次の行を追加しました。
INCLUDEPATH += "C:/botan/include"
LIBS += "C:/botan/libBotan.a"次に、「mainwindow.cpp」に移動し、以下を追加します。
#include <botan/botan.h>
ここまでのすべてが正常にコンパイルされます。
これをコンストラクターに追加します。
Botan::AutoSeeded_RNG rng;
現在、上記のエラーがスローされ、実行できません。「AutoSeeded_RNG」を「BigInt」に置き換えると、完全にコンパイルされます。
助けてくれてありがとう、Hetelek。