c++ - 如何在不将库源添加到项目中的情况下将库链接到 CodeBlocks & GCC中的项目中

  显示原文与译文双语对照的内容

我正在编写一个使用hashlib++库( 或者将使用它)的程序,但是我不想将所有的源文件添加到我的项目中。 还是要链接到hashlib++源文件,以便可以在我的项目中使用它? 我已经尝试直接与一个简单的标题链接


#include"path/to/hashlibpp.h"

但是我收到了一个很好的错误,只要我尝试调用来自库的函数。 例如:


undefined reference to `sha1wrapper::sha1wrapper()

我正在使用 Code::Blocks IDE和GCC编译器。

时间: 作者:

首先必须将库安装在计算机上,已经编译到 static 或者动态库文件中。 你可以从源代码安装,或者你可能会发现你的操作系统( 。根据你使用的操作系统) 有一个预先构建好的软件包。 你需要知道图书馆的NAME 。

对于 hashlib++,他们提供了在它的自述文件中从源代码构建 static 库的说明;参见第2 节。

在大多数情况下,动态链接是最好的选择。 这意味着库在运行时与库链接,而不是在编译时将库添加到你的执行中。

然而,根据他们的README.txt, hashlib,它只能作为一个 static 库来使用,这将限制你的选择。

在使用gcc在 命令行 上编译程序时,'-l'选项在库中链接:


gcc -o MyProg -lhl++ MyProg.c

当使用诸如代码块这样的IDE时,通常必须指定要链接的库。 有关如何使用进行这里操作的详细信息,请参见

作者:
...