最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

動(dòng)態(tài)庫調(diào)用靜態(tài)庫示例講解

 更新時(shí)間:2013年12月16日 11:58:03   作者:  
一個(gè)應(yīng)用程序調(diào)用動(dòng)態(tài)庫, 而這個(gè)動(dòng)態(tài)庫其中的函數(shù)調(diào)用某靜態(tài)庫時(shí),如何生成應(yīng)用程序呢?看下面的代碼就明白了

生成動(dòng)態(tài)庫: 需要的目標(biāo)文件得用-fPIC選項(xiàng)生成.

而靜態(tài)庫所需的目標(biāo)文件可以不用-fPIC選項(xiàng).

例:

復(fù)制代碼 代碼如下:

/////// static.h

void static_print();

///////static.cpp

#include <iostream>

#include "static.h"

void static_print() {

     std::cout<<"This is static_print function"<<std::endl;

}

////// shared.h

void shared_print();

////// shared.cpp

#include <iostream>

#include "shared.h"

#include "static.h"

void shared_print() {

       std::cout<<"This is shared_print function";

        static_print();

}

////////test.cpp

   #include "share.h"

int main()
{
       shared_print();
       return 0;
   }

方法一:

靜態(tài)庫的.o文件也用-fPIC生成. 生成動(dòng)態(tài)庫時(shí)把靜態(tài)庫加入.

 生成應(yīng)用程序時(shí)只加載動(dòng)態(tài)庫

復(fù)制代碼 代碼如下:

 g++ -c -fPIC static.cpp // 生成static.o

 ar -r libstatic.a static.o // 生成靜態(tài)庫libstatic.a

 g++ -c -fPIC shared.cpp // 生成shared.o

 g++ -shared shared.o -lstatic -o libshared.so   // 生成動(dòng)態(tài)庫libshared.so 注: -shared是g++的選項(xiàng),與shared.o無關(guān). -lstatic選項(xiàng)把libstatic.a的函數(shù)加入動(dòng)態(tài)庫中.

 g++ test.cpp -lshared -o test.exe // link libshared.so 到test.exe中.
 

方法二:

 靜態(tài)庫的.o文件不用-fPIC生成. 生成動(dòng)態(tài)庫時(shí)不加表態(tài)庫.

生成應(yīng)用程序時(shí)加載動(dòng)態(tài)庫和靜態(tài)庫.

復(fù)制代碼 代碼如下:

 g++ -c static.cpp // 生成static.o

 ar -r libstatic.a static.o // 生成靜態(tài)庫libstatic.a

 g++ -c -fPIC shared.cpp // 生成shared.o

 g++ -shared shared.o -o libshared.so // 生成動(dòng)態(tài)庫libshared.so 注: -shared是g++的選項(xiàng),與shared.o無關(guān). 這時(shí)如果加-lstatic. error:relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

 g++ test.cpp -lshared -lstatic -o test.exe // link libshared.so 到test.exe中.
 

兩種方法的不同之處在于static_print的實(shí)際代碼一個(gè)在.so中.一個(gè)在最后test.exe文件中. 個(gè)人覺得第一種方法更好, 因?yàn)閯?dòng)態(tài)庫應(yīng)該看成一個(gè)可以獨(dú)立運(yùn)行的程序.

相關(guān)文章

  • Centos7 格式化分區(qū)并掛載的實(shí)現(xiàn)

    Centos7 格式化分區(qū)并掛載的實(shí)現(xiàn)

    這篇文章主要介紹了Centos7 格式化分區(qū)并掛載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Linux下Apache服務(wù)的部署和配置

    Linux下Apache服務(wù)的部署和配置

    這篇文章介紹了Linux下Apache服務(wù)的部署和配置,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Apache 防盜鏈的技術(shù)小結(jié)

    Apache 防盜鏈的技術(shù)小結(jié)

    Apache 防盜鏈的第一種實(shí)現(xiàn)方法,可以用 rewrite 實(shí)現(xiàn)。
    2010-12-12
  • 在CentOS7中安裝和配置ssh

    在CentOS7中安裝和配置ssh

    這篇文章介紹了在CentOS7中安裝和配置ssh的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • apache的AllowOverride以及Options使用詳解

    apache的AllowOverride以及Options使用詳解

    通常利用Apache的rewrite模塊對(duì) URL 進(jìn)行重寫的時(shí)候, rewrite規(guī)則會(huì)寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對(duì).htaccess 所在目錄進(jìn)行配置
    2012-11-11
  • Linux安裝Nginx及配置nginx.conf方式

    Linux安裝Nginx及配置nginx.conf方式

    本文提供了在Linux系統(tǒng)上安裝Nginx和配置nginx.conf的詳細(xì)步驟,為初學(xué)者提供了便捷的操作指導(dǎo)和個(gè)人經(jīng)驗(yàn)分享,適合需要搭建服務(wù)器的用戶參考
    2023-03-03
  • Linux下如何安裝Logstash

    Linux下如何安裝Logstash

    這篇文章主要介紹了Linux下如何安裝Logstash問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • centos 7 源碼安裝openssh的方法

    centos 7 源碼安裝openssh的方法

    這篇文章主要介紹了centos 7 源碼安裝openssh的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 3分鐘學(xué)會(huì)如何上手supervisor看門狗

    3分鐘學(xué)會(huì)如何上手supervisor看門狗

    這篇文章主要介紹了3分鐘學(xué)會(huì)如何上手supervisor看門狗,文章中操作步驟講解的很清楚,有需要的同學(xué)可以研究下
    2021-02-02
  • Linux中的緩沖區(qū)和文件系統(tǒng)詳解

    Linux中的緩沖區(qū)和文件系統(tǒng)詳解

    這篇文章主要介紹了Linux中的緩沖區(qū)和文件系統(tǒng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評(píng)論

灵台县| 榆林市| 新源县| 耒阳市| 巴彦县| 丰城市| 五指山市| 抚宁县| 阿荣旗| 舒兰市| 永清县| 河东区| 丹阳市| 宁武县| 噶尔县| 邹平县| 达日县| 福海县| 成武县| 靖边县| 阜南县| 务川| 凭祥市| 忻城县| 宽城| 普安县| 苏尼特右旗| 白城市| 曲沃县| 云霄县| 隆回县| 安西县| 津南区| 新绛县| 丹阳市| 信阳市| 云南省| 大同市| 闵行区| 徐州市| 河西区|