Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Windows7下编译Botan库测试程序(MinGW,代码::Blocks)_C++_Codeblocks_Mingw32_Botan - Fatal编程技术网

C++ 在Windows7下编译Botan库测试程序(MinGW,代码::Blocks)

C++ 在Windows7下编译Botan库测试程序(MinGW,代码::Blocks),c++,codeblocks,mingw32,botan,C++,Codeblocks,Mingw32,Botan,我一直在徒劳地试图编译这个测试程序 #include <botan/botan.h> int main() { Botan::LibraryInitializer init; } 我搜索了谷歌和任何我能找到的可用论坛。我在他们网站上的一个隐藏文件夹中找到了windows的预构建库。但是,该包包含lib和dll文件,而不是MinGW需要的.a文件。我尝试使用一个程序LIB2A,它创建了一个.a文件。我已将此文件添加到我的code::block

我一直在徒劳地试图编译这个测试程序

   #include <botan/botan.h>


   int main()
   {
       Botan::LibraryInitializer init;
   }
我搜索了谷歌和任何我能找到的可用论坛。我在他们网站上的一个隐藏文件夹中找到了windows的预构建库。但是,该包包含lib和dll文件,而不是MinGW需要的.a文件。我尝试使用一个程序LIB2A,它创建了一个.a文件。我已将此文件添加到我的code::blocks链接器选项中。我还包括了include文件夹

当我试图编译时,我得到了这个错误

C:\botan\include\botan\init.h|41|undefined reference to `_imp___ZN5Botan18LibraryInitializer10initializeERKSs'|

它似乎看不到包含函数定义的库,但我不知道该从哪里开始。

mingw32 make设置了-m64标志,这意味着它正在尝试构建一个64位库。要构建64位库,您需要获得MinGW-w64

当您运行configure.py时,它可能会将您的MakeFile设置为构建64位库。您需要检查在其输出中设置了哪些选项。这包括构建32位或64位的选项。无论哪种方式,您都需要它的一些变体:python configure.py--os=mingw--cc=gcc

此问题存在类似错误,建议使用MinGW-w64,这将允许您构建64位库:

为了使用mingw32生成命令行,您还需要将MinGW-w64 bin目录添加到Windows路径,并可能从路径中删除打包的代码::Blocks MinGW以避免冲突。您仍将使用mingw32-make使用MinGW-w64构建库;尽管名为mingw32-make,但它将构建64位

如果您决定构建64位的库,那么还需要构建64位的应用程序,因此您需要为Code::Blocks设置MinGW-w64。要在Code::Blocks中设置MinGW-w64,请参阅以下问题:

C:\botan\include\botan\init.h|41|undefined reference to `_imp___ZN5Botan18LibraryInitializer10initializeERKSs'|