1

我正在完全转动我的轮子,让几个 3rd 方库与我的 c++ 程序一起工作。我正在寻找一些关于实现库时需要采取的一般步骤的一般性建议(40,000 英尺高)。

首先,一些细节:我在 Windows 中使用 code::blocks 作为我的 IDE。我喜欢这个 IDE,如果不需要的话,我真的不想切换到其他任何东西(我已经尝试过 Visual c++ 以及 linux 中的一些东西)。我尝试使用的库是 GMP 和 crypto++。

好的。我我知道的是:下载库后,我将文件解压缩到一个文件夹中。我一直在直接解压缩到 C:\,每个 zip 文件都解压缩到它自己的文件夹(例如 c:\cryptopp 和 c:\gmp)。我认为下一步是构建库,但这是我完全陷入困境的地方。这是怎么做到的?提取的文件中没有可执行文件。据我所知,我相信我是在 code::blocks 中做到这一点的,但我不知道怎么做?

最后,假设我可以完成这项工作,我相信这会创建 .lib 文件,在我的代码中实际使用该库之前的最后一步是链接到该库。这部分,我相信我明白了。

所以,我的问题很广泛:我是否全面了解这个过程?如果是这样,我该如何构建这些库,如果事实上这是我所缺少的。

非常感谢你纵容我的无知。我现在完全没有方向感,尽管在谷歌上花了好几个小时,但我没有取得任何进展。另外,请随时纠正我所说的任何不正确的事实。非常感谢!

4

2 回答 2

1

通常,库中有一个名为 makefile 的特殊文件,并使用名为Make的实用程序构建(或其变体之一,无论在 Windows 下如何工作)。通常你所要做的就是在你解压源文件的目录中运行 Make,剩下的事情它会自己做。

于 2012-07-03T05:56:44.273 回答
1

如果您提到的那些库(GMP 和 crypto++;免责声明:我不熟悉它们中的任何一个)没有 code::blocks 的项目文件,那么您仍然可以在 Windows 下使用 MinGW 编译它们。

如果您已经安装了 MinGW,您可以使用 MinGW shell 导航到相应的目录,/c/cryptopp//c/gmp您的示例中 - MinGW shell 的工作方式类似于 Unix shell,并且具有不同的命名约定。

然后你需要编译库。检查这些目录中是否有Makefile,如果没有,您可以检查是否有configure脚本,该脚本将生成Makefile。如果你有 Makefile,你可以键入make它将使用 MinGW 的 GCC 编译器端口编译库。

编译完成后,您应该有一个 .a 文件(例如libcryptopp.a)形式的库,您可以将其链接到您的项目。在 code::blocks 中,您可以将链接器路径(-LGCC 中的命令行选项)设置到C:\cryptopp\bin编译库的位置或任何位置,然后添加libcryptopp.a到要链接的库列表中(这与-lGCC 中的选项相关联) . 惯例是省略 lib 前缀和 .a 扩展名,因此您只需将其添加cryptopp到您的库列表中。最后,您的链接器选项应该-LC:\cryptopp\bin -lcryptopp

此外,为了能够使用库,您需要将 headers 目录的路径添加到项目的包含路径中。这与-IGCC 中的命令行选项相关联,因此您的编译器的命令行选项会有类似的东西-IC:\cryptopp\include

当然,以上所有内容都假设您将 code::blocks 与 GCC 一起使用。如果你用 VisualC++ 使用它,那么原理是一样的,但具体步骤不同。

于 2012-07-03T06:21:52.093 回答