此處僅以VS2010為例,詳細說明一下如何在VS環(huán)境下生成和使用C++的靜態(tài)庫與動態(tài)庫。Qt下生成和使用靜態(tài)和動態(tài)庫后續(xù)再講。

          ? ? ? ?首先簡單地理解一下靜態(tài)庫與動態(tài)庫,以及兩者的區(qū)別。

          靜態(tài)庫(.lib): 將.cpp文件中的函數(shù)的地址和定義,以及函數(shù)之間的鏈接關系通通打包,生成的一個二進制文件;

          動態(tài)庫(.lib+.dll): 動態(tài)庫的.lib文件,打包的只是.cpp文件中函數(shù)的地址和鏈接,函數(shù)的具體定義打包在*.dll文件中。

          聯(lián)系:

          1.二者都不包含函數(shù)的聲明部分,因此調(diào)用這兩種庫的時候,都需要包含相應的頭文件(*.h);

          2.靜態(tài)庫和動態(tài)庫的.lib文件,在生成可執(zhí)行文件(.exe)的時候,都將被打包進*.exe文件中;

          區(qū)別:

          1.靜態(tài)庫的.lib文件遠大于動態(tài)庫的.lib文件;

          2.動態(tài)庫的.dll文件作為可執(zhí)行文件.exe的附加文件加入到程序中,一般放在*.exe的同級目錄下。

          簡單地介紹完這兩種庫,下面來看看在VS下是怎么生成和使用的。

          ? ? ? ?

          靜態(tài)庫:

          生成:

          1.新建一個空的Visual Studio 2010 ,Visual C++, Win32 控制臺工程,取名為“testlib”;

          (你可以在向?qū)е羞x擇靜態(tài)庫選項,也可以在后續(xù)的設置中設置生成靜態(tài)庫,這里我們在后面進行設置);

          2.構造一個類用于測試,這里叫做“CAdd”類,進行的是整數(shù)的加法運算,聲明和實現(xiàn)分別保存在文件“add.h”和
          “add.cpp”中: “add.h”: #ifndef ADD_H #define ADD_H class CAdd { public: CAdd();
          ~CAdd(); int add(int a, int b); }; #endif "add.cpp": #include "add.h"
          CAdd::CAdd() { } CAdd::~CAdd() { } int CAdd::add(int a, int b) { return a+b; }
          可以在“屬性”->"C++"->"預編譯頭"下選擇“不使用預編譯頭”去掉cpp文件的“stdafix.h”的添加要求

          * 選擇編譯為靜態(tài)庫:

          在“屬性”->“配置屬性"->”常規(guī)“->”配置類型“下選擇”靜態(tài)庫(.lib)“(默認是"應用程序(.exe)"),在此界面上可以更改輸出文件(.lib)所在的目錄,

          以及l(fā)ib文件的名稱(默認是工程的名稱):



          4.選擇生成解決方案,這時在你剛剛選擇的輸出文件夾下(這里是lib文件夾),已經(jīng)生成了靜態(tài)庫文件,add.lib



          使用:

          ? ? ? ?使用很簡單:

          1.屬性-》配置屬性-》C/C++->常規(guī)-》附加包含目錄,填寫”add.h“所在目錄;

          ? 2.屬性-》配置屬性-》鏈接器-》附加依賴項,填寫”add.lib“;

          3.屬性-》配置屬性-》鏈接器-》附件依賴目錄,填寫”add.lib“所在目錄;

          4.在用到CAdd這個類的地方添加頭文件包含#include

          5.具體調(diào)用CAdd類的函數(shù)

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關注微信

                寡妇高潮一级毛片免费看v | 日韩精品中午字幕三区 | 久久人人爽人人爽人人片亞洲 | 成人免费无码无遮挡缓慢视频 | 国产成人亚洲精品无码古代 |