青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Linux下創(chuàng)建靜態(tài)、動(dòng)態(tài)庫(kù)

舉例

//a.cpp
#include <cstdio>
int a(int i)
{
        std::printf(
"in a(int a) %dn", i);
        
return 0;
}

 

//b.cpp
#include <iostream>
int b(char *s)
{
        std::cout
<<"in int b(char *s): "<<s<<std::endl;
        
return 0;
}

 

//main.cpp
#include <cstdio>
using namespace std;
int a(int i);
int b(char *s);
int main()
{
        a(
5);
        b(
"ok");
        printf(
"in mainn");
        
return 0;
}


 

靜態(tài)庫(kù)
1、編譯生成a.o b.o 文件
# g++ -c a.cpp b.cpp

2、生成archive 文件libtest.a  c-創(chuàng)建  r-將文件加入libtest.a
#ar rc libtest.a a.o b.o

3、指定靜態(tài)庫(kù)libtest.a 進(jìn)行編譯
# g++ -o main main.cpp libtest.a

運(yùn)行結(jié)果
# ./a.out
in a(int a) 5
in int b(char *s): ok
in main

對(duì)于libtest.a直接將里面的代碼拷貝出來(lái)相當(dāng)于靜態(tài)編譯

動(dòng)態(tài)庫(kù)
1、編譯生成a.o b.o文件   -fPIC生成.o文件時(shí)用相對(duì)地址實(shí)現(xiàn)代碼位置無(wú)關(guān)
# g++ -fPIC a.cpp b.cpp

2、生成動(dòng)態(tài)庫(kù)libtest.so
# g++ -shared -o libtest.so a.o b.o

3、指定動(dòng)態(tài)庫(kù)libtest.so進(jìn)行編譯
# g++ main.cpp  ./libtest.so

查看動(dòng)態(tài)連接庫(kù)
# ldd a.out
        ./libtest.so => ./libtest.so (0x40014000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4002e000)
        libm.so.6 => /lib/i686/libm.so.6 (0x40071000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

其他
1、動(dòng)態(tài)連接庫(kù)3時(shí)如果
# g++ main.cpp libtest.so
編譯可通過(guò)但運(yùn)行出錯(cuò)在默認(rèn)庫(kù)路徑下找不到libtest.so庫(kù)
# ./a.out
./a.out: error while loading shared libraries: libtest.so: cannot open shared object file: No such
file or directory
查看連接庫(kù)
# ldd a.out
        libtest.so => not found
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4002c000)
        libm.so.6 => /lib/i686/libm.so.6 (0x4006f000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

2、方便使用可以將靜態(tài)庫(kù)libtest.a或者動(dòng)態(tài)庫(kù)libtest.so拷貝到默認(rèn)庫(kù)的查找路徑里/lib或者/usr/lib里,
編譯時(shí)直接
#g++ main.cpp -ltest
-l 自動(dòng)進(jìn)行庫(kù)名稱(chēng)擴(kuò)展
# ldd a.out
        libtest.so => /usr/lib/libtest.so (0x4002b000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4002e000)
        libm.so.6 => /lib/i686/libm.so.6 (0x40071000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
靜態(tài)情況
# g++ main.cpp -ltest
# ldd a.out
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4002b000)
        libm.so.6 => /lib/i686/libm.so.6 (0x4006f000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

3、靜態(tài)庫(kù)中2生成archive后可能需要ranlib libtest.a 將內(nèi)容的索引寫(xiě)入libtest.a中供ld連接時(shí)使用

4、-l選項(xiàng)要放在所編譯文件的后面,在前面會(huì)出錯(cuò)
# g++ -ltest main.cpp
/tmp/ccbQK3kY.o: In function `main':
/tmp/ccbQK3kY.o(.text+0xc): undefined reference to `a(int)'
/tmp/ccbQK3kY.o(.text+0x1c): undefined reference to `b(char *)'
collect2: ld returned 1 exit status

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜不卡视频| 午夜精品久久久久久久99水蜜桃| 日韩一级不卡| 在线电影国产精品| 亚洲欧美日韩天堂| 亚洲一区二区三| 欧美高清视频一二三区| 久久久精品tv| 国产精品男女猛烈高潮激情| 最新亚洲一区| 狠狠干综合网| 欧美在线关看| 欧美中文字幕在线观看| 国产精品久久99| 亚洲精品一区二区三区99| 亚洲国产另类久久久精品极度| 欧美一二三区在线观看| 午夜视频精品| 国产精品美女主播在线观看纯欲| 亚洲精品欧美日韩专区| 亚洲精品欧美日韩| 欧美韩日视频| 亚洲精品日产精品乱码不卡| 91久久久亚洲精品| 欧美.com| 亚洲经典一区| 一二三区精品| 欧美日韩精品一区二区在线播放| 亚洲日本欧美| 亚洲无吗在线| 国产精品毛片a∨一区二区三区|国| 99视频精品在线| 午夜在线视频观看日韩17c| 欧美亚洲不卡| 亚洲主播在线| 久久久久久电影| 在线精品一区二区| 免费亚洲婷婷| 日韩午夜在线电影| 午夜精品福利一区二区三区av| 国产精品亚洲激情| 午夜久久福利| 欧美成人免费观看| 夜夜嗨av一区二区三区四季av| 欧美日韩精品一本二本三本| 在线亚洲一区| 久久精品国产精品| 伊伊综合在线| 欧美日韩国产小视频| 一区二区三区你懂的| 欧美伊人久久久久久久久影院| 国产一区二区成人久久免费影院| 久久成人在线| 亚洲激情视频网站| 亚洲字幕一区二区| 一区二区三区在线视频观看| 欧美国产精品久久| 亚洲欧美日韩精品久久久| 久久综合色88| 在线视频欧美日韩精品| 国产欧美日韩| 欧美国产精品久久| 午夜日韩激情| 亚洲国内精品在线| 久久爱另类一区二区小说| 亚洲黄色精品| 国产精品午夜春色av| 麻豆久久久9性大片| 亚洲视频在线观看| 免费欧美日韩国产三级电影| 亚洲午夜久久久久久久久电影网| 国外成人在线| 欧美视频一区二区三区| 久久―日本道色综合久久| 一区二区日韩伦理片| 久久综合狠狠| 亚洲欧美欧美一区二区三区| 亚洲国内自拍| 国产亚洲毛片在线| 欧美丝袜第一区| 免费观看欧美在线视频的网站| 亚洲一区免费网站| 亚洲精品日本| 欧美福利一区二区| 久久精品人人| 性视频1819p久久| 国产精品99久久久久久www| 在线免费观看视频一区| 国产女人18毛片水18精品| 欧美三级电影一区| 欧美成人蜜桃| 麻豆精品网站| 久久免费国产精品| 久久国内精品视频| 香蕉久久久久久久av网站| 中文欧美在线视频| 日韩午夜在线观看视频| 91久久精品日日躁夜夜躁欧美| 欧美**人妖| 久久综合给合| 老司机精品久久| 久久久久久久网| 久久精视频免费在线久久完整在线看 | 久久九九免费| 亚洲欧美影音先锋| 亚洲天堂偷拍| 亚洲综合视频一区| 亚洲午夜未删减在线观看| 99re热这里只有精品视频| 亚洲人成亚洲人成在线观看图片| 欧美大片网址| 亚洲国产高清一区| 亚洲国内精品在线| 亚洲人成网站精品片在线观看 | 午夜在线不卡| 亚洲欧美一区二区原创| 亚洲欧美日韩综合国产aⅴ| 一区二区三区日韩| 亚洲视频一二三| 亚洲一级在线| 亚洲欧美色一区| 欧美伊人久久久久久午夜久久久久| 午夜精品在线| 久久亚洲春色中文字幕久久久| 久久一本综合频道| 欧美大片第1页| 亚洲欧洲一区二区天堂久久| 99精品国产热久久91蜜凸| 亚洲视频碰碰| 久久精品视频在线| 欧美成人精品福利| 国产精品99免视看9| 国产一级一区二区| 亚洲黄色尤物视频| 亚洲一区二区三区高清不卡| 欧美影视一区| 欧美激情一区二区三区蜜桃视频 | 久久久成人精品| 久久在线免费观看| 亚洲激精日韩激精欧美精品| 一区二区三区高清视频在线观看| 亚洲欧美日韩精品久久久久| 久久久久久一区二区| 欧美老女人xx| 国产日韩av在线播放| 亚洲精品国产品国语在线app | 亚洲在线观看免费| 久久麻豆一区二区| 亚洲精品一区二区在线| 欧美一级理论性理论a| 欧美va天堂在线| 国产精品五月天| 亚洲精品日韩在线| 久久爱www久久做| 亚洲精品美女免费| 香蕉成人伊视频在线观看| 欧美激情精品久久久久久黑人| 国产嫩草一区二区三区在线观看| 在线免费观看视频一区| 午夜视黄欧洲亚洲| 亚洲国产精品精华液2区45| 亚洲欧美视频在线| 欧美激情综合五月色丁香| 黄色成人在线网址| 亚洲免费在线观看视频| 亚洲第一精品电影| 久久国产高清| 国产精品羞羞答答xxdd| 一区二区三区欧美在线| 免费av成人在线| 午夜精品国产精品大乳美女| 欧美日韩高清在线观看| 亚洲国产成人91精品| 欧美一区综合| 亚洲午夜精品国产| 欧美日韩午夜激情| 亚洲激情影院| 欧美成ee人免费视频| 欧美一区2区三区4区公司二百| 欧美日韩精品一区二区在线播放| 亚洲国产精品免费| 久久一日本道色综合久久| 午夜精品电影| 国产九区一区在线| 亚洲欧美精品伊人久久| 一区二区日韩精品| 欧美视频中文字幕在线| 日韩一级不卡| 亚洲清纯自拍| 欧美精品三级日韩久久| 亚洲黄色一区二区三区| 欧美高清免费| 欧美a级片网站| 亚洲国产精品一区二区www在线| 久久久激情视频| 久久久久久欧美| 在线观看福利一区| 欧美激情视频在线播放| 欧美大片在线观看一区二区| 亚洲精品久久久久久下一站|