建立和使用靜態庫 C

2021-06-07 12:57:23 字數 3766 閱讀 7180

建立和使用靜態庫 (c++)

我們將建立的下乙個庫型別是靜態庫 (lib)。使用靜態庫是重用**的一種絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。

本演練涵蓋以下內容:

先決條件

本主題假定您具備 c++ 語言的基礎知識。

從「檔案」選單中,選擇「新建」,然後選擇「專案…」。

在「專案型別」窗格中,選擇「visual c++」下的「win32」。

在「模板」窗格中,選擇「win32 控制台應用程式」。

為專案選擇乙個名稱,如「mathfuncslib」,並將其輸入「名稱」字段。為解決方案選擇乙個名稱,如「staticlibrary」,並將其輸入「解決方案名稱」字段。

按「確定」啟動「win32 應用程式嚮導」。在「win32 應用程式嚮導」對話方塊的「概述」頁中,按「下一步」。

在「win32 應用程式嚮導」的「應用程式設定」頁中,選擇「應用程式型別」下的「靜態庫」。

在「win32 應用程式嚮導」的「應用程式設定」頁中,清除「附加選項」下的「預編譯頭」核取方塊。

按「完成」建立專案。

若要為新類建立標頭檔案,請從「專案」選單中選擇「新增新項…」。將顯示「新增新項」對話方塊。從「類別」窗格中,選擇「visual c++」下的「**」。從「模板」窗格中選擇「標頭檔案(.h)」。為標頭檔案選擇乙個名稱,如「mathfuncslib.h」,並按「新增」。將顯示乙個空白檔案。

新增乙個名為「mymathfuncs」的簡單類,以執行常見的算術運算,如加、減、乘和除。**應與以下內容類似:複製

// mathfuncslib.h

namespace mathfuncs

;}

若要為新類建立原始檔,請從「專案」選單中選擇「新增新項…」。將顯示「新增新項」對話方塊。從「類別」窗格中,選擇「visual c++」下的「**」。從「模板」窗格中,選擇「c++ 檔案(.cpp)」。為原始檔選擇乙個名稱,如「mathfuncslib.cpp」,並按「新增」。將顯示乙個空白檔案。

在原始檔中實現「mymathfuncs」的功能。**應與以下內容類似:複製

// mathfuncslib.cpp

// compile with: /c /ehsc

// post-build command: lib mathfuncslib.obj

#include "mathfuncslib.h"

#include using namespace std;

namespace mathfuncs

double mymathfuncs::subtract(double a, double b)

double mymathfuncs::multiply(double a, double b)

double mymathfuncs::divide(double a, double b)

return a / b;}}

若要將專案生成為靜態庫,請從「專案」選單中選擇「mathfuncslib屬性…」。在左窗格中,選擇「配置屬性」下的「常規」。在右窗格中,將「配置型別」更改為「靜態庫(.lib)」。按「確定」儲存更改。

說明:

如果是從命令列生成,必須分兩個步驟來生成程式。首先,通過使用帶編譯器選項/ccl.exe編譯** (cl /c /ehsc mathfuncslib.cpp

)。這將建立名為「mathfuncslib.obj」的物件檔案。有關更多資訊,請參見 /c(編譯但不鏈結)

。接著,使用庫管理器lib.exe鏈結** (lib mathfuncslib.obj

)。這將建立靜態庫「mathfuncslib.lib」。有關庫管理器的更多資訊,請參見lib 引用。

編譯該靜態庫,方法是選擇「生成」選單中的「生成解決方案」。這將建立乙個可供其他程式使用的靜態庫。

若要建立引用並使用剛剛建立的靜態庫的應用程式,請從「檔案」選單中選擇「新建」,然後選擇「專案…」。

在「專案型別」窗格中,選擇「visual c++」下的「win32」。

在「模板」窗格中,選擇「win32 控制台應用程式」。

為專案選擇乙個名稱(如「myexecrefslib」),並將其鍵入「名稱」字段。從「解決方案」旁邊的下拉列表中選擇「添入解決方案」。這會將新專案新增到該靜態庫所屬的同乙個解決方案中。

按「確定」啟動「win32 應用程式嚮導」。在「win32 應用程式嚮導」對話方塊的「概述」頁中,按「下一步」。

在「win32 應用程式嚮導」的「應用程式設定」頁中,選擇「應用程式型別」下的「控制台應用程式」。

在「win32 應用程式嚮導」的「應用程式設定」頁中,清除「附加選項」下的「預編譯頭」。

按「完成」建立專案。

建立新的控制台應用程式後,該嚮導將為您建立乙個空程式。原始檔的名稱與您在前面為專案選擇的名稱相同。在本示例中,名為「myexecrefslib.cpp」

若要使用在靜態庫中建立的算術例程,必須引用該靜態庫。為此,請選擇「專案」選單中的「引用…」。在「屬性頁」對話方塊中,展開「通用屬性」節點,並選擇「引用」。然後選擇「新增新引用…」按鈕。有關「引用...」對話方塊的更多資訊,請參見「屬性頁」對話方塊 ->「通用屬性」->「框架和引用」

。顯示「新增引用」對話方塊。此對話方塊列出了所有可以引用的庫。「專案」選項卡列出了當前解決方案中的所有專案,以及它們包含的所有庫。在「專案」選項卡中,選擇「mathfuncslib」。然後選擇「確定」。有關「新增引用」對話方塊的更多資訊,請參見「新增引用」對話方塊

。若要引用靜態庫的標頭檔案,必須修改包含目錄路徑。為此,請在「屬性頁」對話方塊中,展開「配置屬性」節點,然後展開「c/c++」節點,並選擇「常規」。在「附加包含目錄」旁邊,鍵入「mathfuncslib.h」標頭檔案所在位置的路徑。

現在,可以在應用程式中使用「mymathfuncs」類了。使用以下**替換「myexecrefslib.cpp」的內容:複製

// myexecrefslib.cpp

// compile with: /ehsc /link mathfuncslib.lib

#include #include "mathfuncslib.h"

using namespace std;

int main()

通過從「生成」選單中選擇「生成解決方案」,生成可執行檔案。

確保選擇「myexecrefslib」作為預設專案。在「解決方案資源管理器」中,選擇「myexecrefslib」,然後選擇「專案」選單中的「設為啟動專案」。

若要執行專案,請選擇「除錯」選單中的「開始執行(不除錯)」。輸出應該與下面的內容類似:複製

a + b = 106.4

a - b = -91.6

a * b = 732.6

a / b = 0.0747475

**:

建立和使用靜態庫 C

我們將建立的下乙個庫型別是靜態庫 lib 使用靜態庫是重用 的一種絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練涵蓋以下內容 本主題假定您具備 c 語言的基礎知識。從 檔案 選單中,選擇 新建 然後選擇 專案 在 專案...

建立和使用靜態庫

我們通常把一些公用函式製作成函式庫,供其它程式使用。函式庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時會被連線到目標 中,程式執行時將不再需要該靜態庫。動態庫在程式編譯時並不會被連線到目標 中,而是在程式執行是才被載入,因此在程式執行時還需要動態庫存在。本文主要通過舉例來說明在linux中如何建立靜態...

建立和使用靜態庫

測試可用 我們將建立的下乙個庫型別是靜態庫 lib 使用靜態庫是重用 的一種絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練演示如何完成以下任務 本主題假定您具備 c 語言的基礎知識。如果您是剛開始學習 c 建議參閱 m...