在C++中使用第三方库

Using 3rd Party Libraries in C++

本文关键字:第三方 C++      更新时间:2023-10-16

我完全在旋转我的轮子,让几个第三方库与我的c ++程序一起工作。我正在寻找一些关于实施库时需要采取的一般步骤的一般建议(40,000 英尺水平)。

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

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

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

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

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

通常库中有一个名为makefile的特殊文件,并使用名为Make的实用程序(或其变体之一,无论在Windows上工作)构建。通常您所要做的就是在解压缩源文件的目录中运行 Make,它将自行完成其余工作。

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

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

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

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

此外,为了能够使用这些库,您需要将标头目录的路径添加到项目的包含路径中。这与 GCC 中的-I命令行选项相关联,因此编译器的命令行选项在某处具有类似-IC:cryptoppinclude的内容。

当然,以上所有假设你使用 code::blocks 和 GCC。如果将其与 VisualC++ 一起使用,则原理相同,但具体步骤不同。