VS2010生成静态库(.lib)
打開VS2010,新建一個項目,選擇win32項目,點擊確定,選擇靜態庫這個選項,預編譯頭文件不選。
選預編譯頭的話,就在.cpp文件中添加 #include "StdAfx.h"
最好不要選預編譯選項!
??
在這個空項目中,添加一個.h文件和一個.cpp文件。名字我們起為static.h和static.cpp??
static.h文件:
[cpp]?view plaincopystatic.cpp文件
[cpp]?view plaincopy添加.h和.cpp文件方法如下圖:
?
編譯這個項目之后(生成——》生成解決方案),會在debug文件夾下生成static.lib文件,這個就是我們需要的靜態鏈接庫。??
?
下面說明如何調用靜態鏈接庫。??
首先需要新建一個空項目,起名為test。將之前static項目下的static.h和static.lib這個2個文件復制到test項目的目錄下,并在工程中加入static.h文件。??
新建一個test.cpp文件如下:
[cpp]?view plaincopy
編譯運行可得結果:??
3
1??
#pragma comment(lib,"static.lib"),這一句是顯式的導入靜態鏈接庫。除此之外,還有其他的方法,比如通過設置路徑等等,這里不做介紹。??
????? 或者???????選中工程名,點擊右鍵?->屬性,在“VC++目錄”的包含目錄里面加入static.h的所在目錄的路徑,庫目錄里面加入static.lib所在目錄的路徑;在鏈接器->輸入->附加依賴項輸入“static.lib”。然后源文件里添加#include"static.h"就OK了。
另一種調用方法:
首先,將生成的“static.h”和“static.lib”文件拷入到調用的工程文件夾內;
然后選中工程名,點擊右鍵->屬性,在Linker->Input下的“Additional dependencies”選項內填寫要調用的lib名稱,如本例“static.lib”。如要調用多個lib文件,用 ;隔開。
?????????????????????????????????
?題外話摘自百度百科:??
??? 程序編譯一般需經預處理、編譯、?????匯編??? 和鏈接幾個步驟。在我們的應用中,有一些公共代碼是需要反復使用,就把這些代碼編譯為“庫”文件;在鏈接步驟中,連接器將從庫文件取得所需的代碼,復制到生成的????可執行文件??? 中。這種庫稱為靜態庫,其特點是????可執行文件??? 中包含了庫代碼的一份完整拷貝;缺點就是被多次使用就會有多份冗余拷貝。?? 靜態庫和動態庫是兩種共享程序代碼的方式,它們的區別是:靜態庫在程序的鏈接階段被復制到了程序中,和程序運行的時候沒有關系;動態庫在鏈接階段沒有被復制到程序中,而是程序在運行時由系統動態加載到內存中供程序調用。使用動態庫的優點是系統只需載入一次動態庫,不同的程序可以得到內存中相同的動態庫的復本,因此節省了很多內存。?
http://blog.csdn.net/ivan_ljf/article/details/9114679
總結
以上是生活随笔為你收集整理的VS2010生成静态库(.lib)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC模块的动态链接库DLL以及静态链接
- 下一篇: VS2013建立C++ dll库文件