【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
@Author:Runsen
在 C++ 中,我們有兩種類型的庫:
- 靜態(tài)庫
- 動態(tài)庫
靜態(tài)庫
靜態(tài)庫是成為引用它的可執(zhí)行文件的一部分的庫。因此,當(dāng)我們開發(fā)應(yīng)用程序并引用其中的靜態(tài)庫時(shí),靜態(tài)庫的內(nèi)容在應(yīng)用程序中被替換。
Windows 上的靜態(tài)庫通常具有擴(kuò)展名“.lib”,而 Linux 上的靜態(tài)庫擴(kuò)展名為“.a”。
擁有程序引用靜態(tài)庫的一個(gè)優(yōu)點(diǎn)是我們不必將靜態(tài)庫與可執(zhí)行文件一起分發(fā)。這是因?yàn)殪o態(tài)庫的內(nèi)容是應(yīng)用程序的一部分,不需要單獨(dú)給出。
這個(gè)特定的優(yōu)點(diǎn)導(dǎo)致了一個(gè)缺點(diǎn),因?yàn)榭蓤?zhí)行文件可能會變得龐大,并且由于庫是可執(zhí)行文件的一部分而浪費(fèi)了太多空間。
靜態(tài)庫的另一個(gè)缺點(diǎn)是,如果靜態(tài)庫發(fā)生變化,那么引用它的可執(zhí)行文件也需要更新。
動態(tài)庫
動態(tài)庫也稱為“共享庫”。在 Windows 中,動態(tài)庫的擴(kuò)展名為“.dll”(動態(tài)鏈接庫)。在 Linux 上,動態(tài)庫的擴(kuò)展名為“.so”(共享對象)。
動態(tài)庫是由在運(yùn)行時(shí)加載到應(yīng)用程序中的例程組成的庫。當(dāng)應(yīng)用程序引用動態(tài)庫時(shí),該庫不會成為應(yīng)用程序的一部分,而是作為一個(gè)單獨(dú)的單元保留。
動態(tài)庫的優(yōu)點(diǎn)是庫的一個(gè)副本可以被許多應(yīng)用程序共享,從而節(jié)省空間。還有一個(gè)優(yōu)點(diǎn)是,由于動態(tài)庫是一個(gè)單獨(dú)的單元,當(dāng)動態(tài)庫改變時(shí),應(yīng)用程序可執(zhí)行文件不會改變。
動態(tài)庫的唯一缺點(diǎn)是它需要一個(gè)單獨(dú)的程序來加載和引用庫,非常麻煩。
如何安裝和使用 C++ 庫
- 下載庫
為了在我們的應(yīng)用程序中使用庫,我們首先需要獲取庫。
庫可能是預(yù)編譯的——在這種情況下,我們只需要下載操作系統(tǒng)的庫。如果庫沒有預(yù)編譯,那么我們需要下載源代碼并在我們的機(jī)器上編譯它。
在 Windows 上,C++庫通常具有.zip擴(kuò)展名,而在 Linux 操作系統(tǒng)上,庫包以“.RPM”的形式分發(fā)。
下載庫后的下一步是安裝庫。在 Windows 上安裝就像將庫的內(nèi)容解壓縮到一個(gè)文件夾中即可。在 Linux 上,我們可以調(diào)用包管理器來安裝庫。
我們需要設(shè)置庫的路徑,以便編譯器知道在哪里查找?guī)煳募_@就是 Windows 上的“include”目錄或 Linux 上的“/usr/include”。
vcpkg
C++有沒有想Python中的pip,或者Java中的maven這樣的管理工具,
微軟提供了vcpkg
vcpkg是用于C++一種命令行包/庫管理器,它簡化了Windows、Linux和macOS上第三方C++庫的安裝和配置。
下面是vcpkg具體文檔
-
https://docs.microsoft.com/zh-cn/cpp/build/vcpkg
-
https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md
-
https://zhuanlan.zhihu.com/p/153199835
安裝vcpkg
建立C:\dev作為安裝目錄。啟動Win10下的PowerShell終端。
執(zhí)行如下命令行。成功執(zhí)行完成后,在c:\dev\vcpkg目錄下面將會編譯生成vcpkg.exe文件。
安裝boost:x64
.\vcpkg install boost:x64-windows關(guān)于C++的庫,可以查看官方文檔:https://en.cppreference.com/w/cpp/links/libs
比如機(jī)器學(xué)習(xí)的C++模塊
總結(jié)
以上是生活随笔為你收集整理的【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【小白学习C++ 教程】二十二、C++
- 下一篇: 个人住房循环贷款是什么意思