日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2010生成静态库(.lib)

發布時間:2024/9/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2010生成静态库(.lib) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

打開VS2010,新建一個項目,選擇win32項目,點擊確定,選擇靜態庫這個選項,預編譯頭文件不選。

選預編譯頭的話,就在.cpp文件中添加 #include "StdAfx.h"

最好不要選預編譯選項!

??

在這個空項目中,添加一個.h文件和一個.cpp文件。名字我們起為static.h和static.cpp??

static.h文件:

[cpp]?view plaincopy
  • <span?style="font-size:18px;">#ifndef?LIB_H??
  • #define?LIB_H??
  • ??
  • ??extern?"C"?int?sum(int?a,int?b);??
  • ??extern?"C"?int?substract(int?a,int?b);???
  • #endif</span>??
  • static.cpp文件

    [cpp]?view plaincopy
  • <span?style="font-size:18px;">#include?"static.h"??
  • ??
  • int?sum(int?a,int?b)??
  • {??
  • ??return?a+b;??
  • }??
  • int?substract(int?a,int?b)??
  • {??
  • ??return?a-b;??
  • }</span>??
  • 添加.h和.cpp文件方法如下圖:

    ?

    編譯這個項目之后(生成——》生成解決方案),會在debug文件夾下生成static.lib文件,這個就是我們需要的靜態鏈接庫。??

    ?

    下面說明如何調用靜態鏈接庫。??

    首先需要新建一個空項目,起名為test。將之前static項目下的static.h和static.lib這個2個文件復制到test項目的目錄下,并在工程中加入static.h文件。??

    新建一個test.cpp文件如下:

    [cpp]?view plaincopy
  • <span?style="font-size:18px;">#include?"static.h"??
  • #include?<stdlib.h>??
  • #include?<stdio.h>??
  • ??
  • #pragma?comment(lib,"static.lib")??
  • ??
  • int?main()??
  • {??
  • ??printf("%d\n",sum(1,2));??
  • ??printf("%d\n",substract(4,3));??
  • ??system("pause");??
  • ??return?0;??
  • }</span>??

  • 編譯運行可得結果:??

    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)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。