我正在编写一个使用hashlib ++库(或将使用它)的程序,但我不想将它的所有源文件添加到我的项目中,因为它很庞大。反正是否有链接到hashlib ++源文件,以便我可以在我的项目中使用它?我尝试用简单的
直接链接到标题#include "path/to/hashlibpp.h"
但是一旦我尝试从库中调用任何函数,我就会收到一个漂亮的错误。例如:
undefined reference to `sha1wrapper::sha1wrapper()
我正在使用Code :: Blocks IDE和GCC编译器。
答案 0 :(得分:1)
首先,您必须在计算机上安装库,该库已编译为静态或动态库文件。您可以从源代码安装,也可以找到适用于您的操作系统的预构建软件包(具体取决于您使用的操作系统)。您需要知道库的名称。
在hashlib ++的情况下,他们提供了在README中从源构建静态库的指令;见3.2节。
在大多数情况下,动态链接是最佳选择。这意味着库在运行时与库链接,而不是在编译时将库添加到可执行文件中(这会使您的可执行文件更大)。
不幸的是,根据他们的README.txt,hashlib仅作为静态库提供,这限制了您的选择。
使用gcc在命令行上编译程序时,'-l'选项链接到库中:
gcc -o MyProg -lhl++ MyProg.c
使用像Code :: Blocks这样的IDE时,通常必须指定要链接的库。有关如何使用Code :: Blocks执行此操作的详细信息,请参阅this answer。