五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

linux生成和使用動態(tài)鏈接庫和靜態(tài)鏈接庫的Makefile編寫

2022-12-23 16:02 作者:有AI野心的電工和碼農(nóng)  | 我要投稿

轉(zhuǎn)載自http://blog.163.com/jesserei/blog/static/121411689201031612548915

由于網(wǎng)易博客的停用, 本原文已不可訪問, 可惜!

1. 概述

介紹linux下生成和使用動態(tài)鏈接庫和靜態(tài)鏈接庫的Makefile的編寫方法。

2. 生成動態(tài)鏈接庫的Makefile

首先要有一個c或c++等工具編寫出來的庫函數(shù)文件,也就是里面寫了一堆可以被別的函數(shù)調(diào)用的函數(shù)。

比如:

aaa.cpp

接著要寫編譯這個函數(shù)的Makefile

要把一個文件編譯成動態(tài)鏈接庫文件需要分兩個步驟

  • 第一步:將這個文件編譯成.o文件

這里是編譯cpp文件,就用的是C++,如果是編譯.c文件,就需要使用gcc

  • 第二步:將這個.o文件鏈接成動態(tài)鏈接庫文件

動態(tài)鏈接庫文件的名字一定要以lib開頭,后綴是.so

編譯中一定要加上-shared,表示是生成動態(tài)鏈接庫

3. 生成靜態(tài)鏈接庫

還是使用上面的文件,編寫Makefile

同樣也是分兩步,第一步和上面一樣,我直接拷貝過來

  • 第一步:將這個文件編譯成.o文件

這里是編譯cpp文件,就用的是C++,如果是編譯.c文件,就需要使用gcc

  • 第二步:將這個.o文件鏈接成靜態(tài)鏈接庫文件

靜態(tài)鏈接庫文件的后綴是.a,同樣也是需要以lib開頭

4. 鏈接庫的使用

首先需要編寫一個使用了鏈接庫文件中函數(shù)的c或者c++文件

bbb.cpp

使用鏈接庫,Makefile文件如下:

$(CPP) bbb.cpp -I. -L. -o bbb.o -laaa

這里不分是動態(tài)的還是靜態(tài)的,但是,如果使用動態(tài)鏈接庫,運行時需要將aaa.so文件拷貝到/usr/lib下,靜態(tài)庫則不需要。

上面的例子是在redhat9上運行測試過的。

PS:由于對C++了解甚少,所以直接用c寫得c++文件


linux生成和使用動態(tài)鏈接庫和靜態(tài)鏈接庫的Makefile編寫的評論 (共 條)

分享到微博請遵守國家法律
新兴县| 赤峰市| 湖口县| 蚌埠市| 友谊县| 惠水县| 普兰县| 聂荣县| 昂仁县| 大洼县| 无极县| 玛曲县| 崇礼县| 哈巴河县| 临颍县| 浦江县| 松江区| 昌邑市| 宣汉县| 鹤山市| 龙泉市| 凉山| 靖西县| 龙海市| 太仆寺旗| 渭南市| 张家口市| 琼结县| 青田县| 黄冈市| 门头沟区| 乐山市| 沭阳县| 黎平县| 连云港市| 铜鼓县| 太白县| 奉新县| 枣庄市| 冀州市| 利津县|