dev-c++創(chuàng)建lib(靜態(tài)鏈接庫)文件的實現步驟
雖說dev-c++適合初學者,但是它的功能還是很強大的。那如何用它制作一個lib(靜態(tài)鏈接庫)呢?
第一步:制作靜態(tài)鏈接庫
1.打開dev-c++,選擇“新建-項目”,如下圖所示。
2.選擇“Static Library”,并選擇編程語言(c和c++無所謂)以及給項目設置名稱。
3.選擇你要保存的位置。
4.在新建的文件里添加函數,我這里添加了兩個:一個叫hello,用來彈出一個對話框;一個叫add,返回兩個數的和。
5.保存文件(文件名可以隨便選,我這里選擇了main.cpp)
6.點擊“編譯”按鈕。
編譯完成后,可能會出現以下界面:
這時,有人會覺得很奇怪:“我的程序沒問題呀,為什么它報錯呢?????”
仔細一看,它只不過是把使用的命令給顯示了一遍,而不是報錯。
7.在生成的文件中找到一個.a文件(我這里是hello.a,因為項目名是hello,你的可能不一樣),這就是生成的靜態(tài)鏈接庫文件。
第二步:鏈接靜態(tài)鏈接庫
庫做好了,但是我們編程的時候怎么用它呢?方法就是鏈接。在自己的代碼中鏈接靜態(tài)鏈接庫,有兩種方法,各有優(yōu)劣。
方法一:使用項目
1.新建一個console application項目。(不能是源代碼,必須是console application,如果你像我一樣不喜歡console application,請使用方法二)
2.選擇保存位置。
3.打開“項目屬性 -> 參數”。
4.點擊“加入庫或對象”,把剛才的庫加進去。
5.點擊“確定”,大功告成!
優(yōu)點:
1.只有這個項目的文件才會鏈接該庫,別的文件不會。
2.網上比較常見。
缺點:
1.只能新建console application,不能新建源代碼。(說實話,我非常不喜歡console application)
因此,這種方法適合鏈接不太常用的庫。
方法二:修改編譯選項
1.將自己的庫重命名,命名為“libxxx.a”,例如“libhello.a”。
2.新建一個源代碼(這回不用console application了,我好開心!)
3.打開“工具 -> 編譯選項。”
4.找到“在連接器命令行加入以下命令”,在那個框里加入以下命令(如果框里已經有命令了,就在末尾加一個空格,再輸入下面的命令):
-l你的庫名(去掉開頭的lib和結尾的.a)
舉個例子:我的庫名是libhello.a(見第1步),那么我應該加上命令:
-lhello
注意,以下3種寫法都是錯誤的:
-llibhello.a -llibhello -lhello.a
再比如,你的庫名是libtest.a,你應該加上:
-ltest
示例圖(以我的庫為例):
能不能在-l和庫名之間加一個空格呢?當然可以!
5.還沒完!找到“目錄 -> 庫”。
6.把你的庫的路徑添加進去。怎么添加?點擊右下角的“瀏覽”按鈕,找到庫的路徑,點“確定”。
7.點“添加”,再點“確定”,OK!
優(yōu)點:
1.可以新建源代碼,而不是我討厭的console application。。。
缺點:
1.每次會自動鏈接該庫,導致可執(zhí)行文件體積巨大。
2.網上不常見,遇到了問題很難解決。
因此,這種方法適合經常使用的庫。
第三步:使用庫函數
萬事俱備,只欠東風!庫也造好了,鏈接也鏈接了,就差調用庫函數了!怎么調用呢?還是有兩種方法。
注意:如果你是在console application中鏈接靜態(tài)鏈接庫,則你只能在項目文件中調用庫函數;如果你修改了編譯選項,則每一個程序都可以調用庫函數!
方法一
1.在需要調用庫函數的代碼里,寫出庫函數的函數原型。(必須寫函數原型,否則會報錯!)
2.直接調用函數即可。(下圖為完整代碼)
#include <cstdio> void hello(); int add(int a,int b); int main(){ printf("%d",add(1,2)); hello(); return 0; }
運行效果:
優(yōu)點:操作簡單。
缺點:只有你自己知道函數原型,如果別人使用此函數,就不得不向你詢問函數原型。
因此這種方法適合自己使用庫函數。
方法二:
1.把函數原型寫在一個頭文件里。
2.引入頭文件,就可以使用庫函數了!
優(yōu)點:別人可以知道函數原型。
缺點:比較麻煩。
因此,這種方法適合共享給別人。
到此這篇關于dev-c++創(chuàng)建lib(靜態(tài)鏈接庫)文件的實現步驟的文章就介紹到這了,更多相關dev-c++創(chuàng)建lib內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!