簡體   English   中英

如何在CodeBlocks和GCC中將庫鏈接到我的項目,而又不將庫源添加到我的項目中

[英]How do I link a library to my project in CodeBlocks & GCC without adding the library source to my project

我正在編寫一個使用hashlib ++庫的程序(或將使用它),但是我不想將所有源文件都添加到我的項目中,因為它很大。 無論如何,有沒有鏈接到hashlib ++源文件的鏈接,以便我可以在項目中使用它? 我試圖用一個簡單的直接鏈接到標題

#include "path/to/hashlibpp.h"

但是,當我嘗試從庫中調用任何函數時,都會收到一個漂亮的錯誤。 例如:

undefined reference to `sha1wrapper::sha1wrapper()

我正在使用Code :: Blocks IDE和GCC編譯器。

首先,您必須在計算機上安裝該庫,該庫已經編譯為靜態或動態庫文件。 您可以從源代碼安裝,也可以找到適用於您的OS的預構建軟件包(取決於您所使用的OS)。 您將需要知道庫的名稱。

對於hashlib ++,他們在自述文件中提供了從源代碼構建靜態庫的說明; 請參閱第3.2節。

在大多數情況下,動態鏈接是最佳選擇。 這意味着庫在運行時與庫鏈接,而不是在編譯時將庫添加到可執行文件中(這會使可執行文件更大)。

不幸的是,根據他們的README.txt文件,hashlib僅作為靜態庫提供,這限制了您的選擇。

使用gcc在命令行上編譯程序時,“-l”選項鏈接到庫中:

gcc -o MyProg -lhl++ MyProg.c

當使用諸如Code :: Blocks之類的IDE時,通常必須指定要鏈接的庫。 有關如何使用Code :: Blocks執行此操作的詳細信息,請參見此答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM