如何在CodeBlocks&中将库链接到我的项目? GCC没有将库源添加到我的项目中

时间:2014-01-15 00:40:23

标签: c++ gcc codeblocks

我正在编写一个使用hashlib ++库(或将使用它)的程序,但我不想将它的所有源文件添加到我的项目中,因为它很庞大。反正是否有链接到hashlib ++源文件,以便我可以在我的项目中使用它?我尝试用简单的

直接链接到标题
#include "path/to/hashlibpp.h"

但是一旦我尝试从库中调用任何函数,我就会收到一个漂亮的错误。例如:

undefined reference to `sha1wrapper::sha1wrapper()

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

1 个答案:

答案 0 :(得分:1)

首先,您必须在计算机上安装库,该库已编译为静态或动态库文件。您可以从源代码安装,也可以找到适用于您的操作系统的预构建软件包(具体取决于您使用的操作系统)。您需要知道库的名称。

在hashlib ++的情况下,他们提供了在README中从源构建静态库的指令;见3.2节。

在大多数情况下,动态链接是最佳选择。这意味着库在运行时与库链接,而不是在编译时将库添加到可执行文件中(这会使您的可执行文件更大)。

不幸的是,根据他们的README.txt,hashlib仅作为静态库提供,这限制了您的选择。

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

gcc -o MyProg -lhl++ MyProg.c

使用像Code :: Blocks这样的IDE时,通常必须指定要链接的库。有关如何使用Code :: Blocks执行此操作的详细信息,请参阅this answer