linux下的C語言開發(靜態庫)

來源:互聯網
上載者:User

【 聲明:著作權,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】

    在我們編寫軟體的過程當中,少不了需要使用別人的庫函數。因為大家知道,軟體是一個協作的工程。作為個人來講,你不可能一個人完成所有的工作。另外,網路上一些優秀的開源庫已經被業內廣泛接受,我們也沒有必要把時間浪費在這些重複的工作上面。

    既然說到了庫函數,那麼一般來說庫函數分為兩種方式:靜態庫和動態庫。兩者的區別其實很小,靜態庫是必須要連結到執行檔案中去的,而動態庫是不需要連結到最後的執行檔案中的。怎麼理解呢?也就是說,對於最後的執行檔案而言,你是否刪除靜態庫無所謂。但是,一旦你刪除了動態庫,最後的執行檔案就玩不轉了。

    今天我們討論的問題是靜態庫。為了顯示windows和linux建立靜態庫之間的差別,我們首先在windows上面利用Visual C++6.0建立一個靜態庫。源檔案的代碼很簡單,

#include "test.h"int add(int a, int b){    return a + b;}

    標頭檔代碼也不難,

#ifndef _TEST_H#define _TEST_Hint add(int a, int b);#endif

    如果你需要在windows上面建立一個靜態庫,那麼你需要進行下面的操作,

(1)開啟visual C++ 6.0工具,單擊【File】-> 【New】->【Projects】
(2)選擇【Win32 Static Library】,同時在【Project Name】寫上項目名稱,在【Location】選擇項目儲存地址
(3)單擊【Ok】,繼續單擊【Finish】,再單擊【Ok】,這樣一個靜態庫工程就建立好了
(4)重新單擊【File】->【New】->【Files】,選擇【C++ Source Files】,
(5)選中【Add to pproject】,將源檔案加入到剛才建立的工程中去,在File中輸入檔案名稱+.c尾碼
(6)重複4、5的操作,加入一個檔案名稱+.h標頭檔
(7)分別在標頭檔和源檔案中輸入上面的代碼,單擊F7按鈕,即可在Debug目錄中產生*.lib靜態庫檔案

    那麼,在linux下面應該怎麼運行呢?其實很簡單,兩條命令解決,
(1)首先產生*.o檔案,輸入gcc -c test.c -o test.o
(2)利用ar命令產生靜態庫,輸入ar rc libtest.a test.o

    此時如果還有一個hello.c檔案使用到了這個靜態庫,比如說 ,

#include <stdio.h>#include "test.h"int main(){    printf("%d\n", add(2, 3));    return 1;}

    其實也很簡單,輸入一個簡單的命令就可以產生執行檔案了,
(1)首先輸入gcc hello.c -o hello ./libtest.a

(2)輸入./hello,驗證產生的執行檔案是否正確

(3)朋友們可以刪除libtest.a檔案,重新輸入./hello,驗證執行檔案是否可以正常運行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.