C++ 如何在代码块中将库链接到我的项目&;GCC,而不将库源添加到我的项目中

C++ 如何在代码块中将库链接到我的项目&;GCC,而不将库源添加到我的项目中,c++,gcc,codeblocks,C++,Gcc,Codeblocks,我正在编写一个使用hashlib++库的程序(或者将使用它),但我不想将它的所有源文件添加到我的项目中,因为它太大了。是否有链接到hashlib++源文件的链接,以便我可以在项目中使用它?我尝试过用一个简单的链接直接链接到标题 #include "path/to/hashlibpp.h" 但是,当我试图从库中调用任何函数时,我就收到了一个漂亮的错误。例如: undefined reference to `sha1wrapper::sha1wrapper() 我正在使用Code::Blocks

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

#include "path/to/hashlibpp.h"
但是,当我试图从库中调用任何函数时,我就收到了一个漂亮的错误。例如:

undefined reference to `sha1wrapper::sha1wrapper()

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

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

在hashlib++中,他们提供了从源代码构建静态库的指令;见第3.2节

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

不幸的是,根据他们的README.txt,hashlib只能作为静态lib使用,这限制了您的选择

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

gcc -o MyProg -lhl++ MyProg.c
当使用类似Code::Blocks的IDE时,通常必须指定要链接的库。有关如何使用Code::Blocks执行此操作的详细信息,请参阅